home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.whtech.com
/
ftp.whtech.com.tar
/
ftp.whtech.com
/
hexbus_cc40_ti74
/
cc40 ti74 hexbus.txt
< prev
next >
Wrap
Text File
|
2006-10-19
|
401KB
|
8,279 lines
============================================================================
A Compendium of CC-40 Information
Compiled By: Dan Eicher
(Eicher@Delphi.Com)
L.D.O.M. 12.01.96
Compendium Copyright 1996 - All articles owned exclusively by their
authors. No part of this document is to be modified and re-distributed
with out written permission from me.
If you have addition that you would be willing to include please email
it to me at the above address. Corrections to the material will also be
included. General comments like - "I would do XXXX this way.", "Could you
add..." ect.... Should be sent to NoOneCares@null.com. If you don't like
it, don't use it.
I would like to extend a big thanks to Charlie Good (CGood@Bright.Net)
for the incredible amount of information he supplied. Without Charlie the
TI community would be a much poorer place.
If you have problems viewing this file, please tell me as close as
possible the exact line. I had to do a large amount of hexediting on the
file - these file came from a variety of different computer platforms
who each have their own quirks in text handling. I will endeavour to fix
all such problems that are report.
In order to help you find the article that you are looking for as
quickly as possible I have put a unique string at the begining of each
article. C4ICSXXX - Where XXX is a 3 digit number. I figured that this
string would not normally show up in articles. It stands for Cc-40
Information Compendium Section XXX.
Articles:
A series of hardware projects.
by Edward A. Hallett...............................................C4ICS001
The HexBus Interface Manual.
ReTyped by Charlie Good............................................C4ICS002
Using TI-74 Devices with the CC-40.
by Maurice Swinnen.................................................C4ICS003
Tutorial on DockBus and HexBus Interfacing.
by B. V. Tachkach..................................................C4ICS004
EMAIL from TI to Charlie good on Parts and Prices.
by T.I.............................................................C4ICS005
Importing Text into TI-Writer from the CC-40.
by Charlie Good....................................................C4ICS006
Upgrading a CC-40 from 8K to 16K.
by.. Author Unknown................................................C4ICS007
Review of the Advanced Electrical Engineering Library Software.
by Charlie Good....................................................C4ICS008
CC-40 Documentation available to Lima User Group Members.
by Charlie Good....................................................C4ICS009
Never Release TI Peripherals.
by Charlie Good....................................................C4ICS010
NEW HexBus Peripherals for the CC-40.
by Charlie Good....................................................C4ICS011
HexBus/DockBus Peripheral Device Numbers.
by Charlie Good....................................................C4ICS012
The HexBus Connection.
by Dan Eicher......................................................C4ICS013
A FATAL bug in TI's Memo Processor Cartridge.
by Charlie Good....................................................C4ICS014
Word Processing with the CC-40 Memo Processing Cartridge.
by Charlie Good....................................................C4ICS015
A Review of the CC-40 Computer System.
by Charlie Good....................................................C4ICS016
A Review of the HexBus Modem.
by Charlie Good....................................................C4ICS017
Using the CC-40 as a Personal Information Manager.
by Charlie Good....................................................C4ICS018
When is a CC-40, not a CC-40?.
by Mike Wright.....................................................C4ICS019
The other TI computer Orphan.
by Gary Fitzgerald.................................................C4ICS020
TI's PC Interface for the TI CC-40 and TI-74.
by Charlie Good....................................................C4ICS021
Using TI's PC-Interface as alternate Mass Storage for the CC-40.
by Harry Nilsson...................................................C4ICS022
A day at the track with the CC-40.
by Charlie Good....................................................C4ICS023
Phone Number Translator for the CC-40 and TI-74.
by Charlie Good....................................................C4ICS024
A Review of the TI HexBus Printer/Plotter.
by Charlie Good....................................................C4ICS025
A Review of TI's HexBus 'Printer 80'.
by Charlie Good....................................................C4ICS026
A Review of Mechatronic's "Quick Disk Drive" for the CC-40 & 74.
by Charlie Good....................................................C4ICS027
Using the TI-74 Quick disk on the CC-40.
by Jim McCulloch...................................................C4ICS028
An Educators sorting program for the CC-40.
by Charlie Good....................................................C4ICS029
TI's supplementary handouts for the TI-99/4A and CC-40.
by Charlie Good....................................................C4ICS030
TI's CC-40 and Peripherals: Alive and Well.
by Charlie Good....................................................C4ICS031
An Improved Basic Word Processor.
by Charlie Good and Palmer Hanson JR...............................C4ICS032
TI's 74 BasicCalc: A Modern version of the CC-40.
by Charlie Good....................................................C4ICS033
Review of TI's never released Wafer Tape Drive.
by Charlie Good....................................................C4ICS034
A Compendium of CC-40 Programs.
Contributed by Charlie Good........................................C4ICS035
=============================================================================
C4ICS001
TI CC-40 project: Written by Edward A. Hallett, May 1990.
I had recently purchased a TI CC-40 computer and did not have any
schematics for it. I wanted to make the CC-40 more usable by expanding
its memory and by building an interface for it to connect a printer. By
using a logic analyzer I was able to determine the pinout and signal
functions of the CC-40 cartridge port and Hex-Bus port. I have expanded
the memory from 6K to 50K and have built a simple printer interface.
I have uploaded a file containing extracts from a series of lab reports
about the TI CC-40 computer that I did for my Microcomputer Systems class
(ELT 270) this semester. Included are the schematics that I drew and
details for expanding the memory from 6K to 18K, building a 32K ram
cartridge, and building a printer interface. Also included is information
about how the CC-40 operates, signal timing diagrams, a block diagram of
the system, and information about internal and port signals.
I hope that other CC-40 owners find the info in the file I uploaded
usefull.
Thanks,
Edward A. Hallett
===========================================================================
CC-40 PROJECT REPORT # 1
Manuals used: TMS7000 Family Data Manual, HM6116LP-3 Data Sheet,
HM61256PC09 Data Sheet, CC-40 Users Guide.
Key Features:
TMS70C20 Microprocessor:
2K on chip ROM
128 Byte on chip RAM for use as registers
64K address space
256 Bytes for memory mapped ports
8 bit instruction word
4 interrupt levels
32 I/O pins: 16 biderectional, 8 output, 8 input
HM6116LP-3 Static Ram:
2K X 8 bit RAM memory
24 pin
HN61256PC09 ROM:
32K X 8 bit ROM memory
28 pin
CC-40:
2.5MHz clock
6K RAM
34K ROM
Basic interpreter
Assembly DEBUG program
=========================================================================
TMS70C20 Microprocessor architecture:
The TMS70C20 can be configured to address 1 of 3 different memory
maps and 1 of 3 configurations of its 32 I/O pins by applying the
proper logic level to the MODE CNTL pin and secondarily to bits 6
and 7 of the I/O control register. The CC-40 uses the Full
Expansion Mode of the TMS70C20 by applying a logic 0 to the MODE
CNTL pin and writing a 0 to bit 6 and a 1 to bit 7 of the I/O
control register.
The Full Expansion Mode of the TMS70C20 microprocessor configures
the memory map to address the full 64K limit and configures the 4
8-bit parallel ports, A, B, C, and D as follows:
Port A: 8 bit parallel input port.
Port B: B0-B3 4 bit parallel output port.
B4 (ALATCH) logic 1 while port C asserts amemory address.
B5 (R/W) logic 1 for read cycle, logic 0 for write cycle.
B6 (ENABLE) logic 0 for external memory cycle.
B7 (CLOCKOUT) output clock for memory control timing.
Port C: Multiplexed address/data port for the memory bus.
Least significant byte (8-bits) of the 16-bit address.
Port D: Most significant byte (8-bits) of the 16-bit address.
============================================================================
TMS70C20 MICROPROCESSOR PINNOUT (IN FULL EXPANSION MODE):
_
1 R/W GND 40
2 CLKOUT ENABLE 39
3 BOUT0 ALATCH 38
4 BOUT1 BOUT3 37
5 BOUT2 MODE 36
6 AIN0 D7/A7 35
7 AIN1 D6/A6 34
8 AIN2 D5/A5 33
9 AIN3 D4/A4 32
10 AIN4 D3/A3 31
11 AIN7 D2/A2 30
____
12 INT3 D1/A1 29
____
13 INT1 D0/A0 28
_____
14 RESET A8 27
15 AIN6 A9 26
16 AIN5 VCC 25
17 CLKIN/XTAL2 A10 24
18 XTAL1 A11 23
19 A15 A12 22
20 A14 A13 21
========================================================================
CC-40 PROJECT REPORT # 2
OBJECTIVE:
Construct cartridge port extender board for the CC-40 to be used for
connecting lab equipment to the CC-40.
PROCEDURE:
A 2.035 inch X 6.0 inch rectangle circuit card was cut from a sheet of
0.020 inch thick, double sided, copper plated circuit board. One end of
the rectangle was cut out at both corners leaving a 1.050 inch X .25 inch
tab protruding from the circuit card. This tab fits into the cartridge
port card edge connector of the CC-40.
20 .035 inch X .4 inch pads were laid out on .050 centers on each face
(top and bottom) of the tab of the circuit card, with dry transfer
strips. The pads extended off the tab onto the main portion of the
circuit card on each face.
2 rows of 20 points were laid out on .1875 inch (3/16 inch) centers along
the edge of both of the 6 inch sides of the circiut card, starting at the
end opposite the tab. Dry transfer pads were placed at each point on the
inner row on each side of the top face. Corresponding pads were placed on
the bottom face. Dry transfer pads were placed on the top face for each
point of the outter row on the right side and on the bottom face for each
point of the outter row on the left side.
The inner row of 20 pads on the right side were connected with dry
transfer lines to the 20 pads of the tab on the top face. The inner
row of 20 pads on the left side were connected on the bottom face with
dry transfer lines to the 20 pads of the tab on the bottom face.
The circuit card was then etched in a solution of Ferric Chloride to
remove the unwanted copper plating between the dry transfers leaving the
desired circuit traces intact. After rinsing the circuit card with water,
the dry transfer was removed with Isopropanol and a scrub pad.
.025 inch holes were drilled thru the pads in the rows along each side of
the circuit card. 2 holes in the each pad of the outer row on each side
and 1 hole in each pad of the inner row on each side.
The continuity was checked between each tab pad and its corrosponding
inner row pad. Each tab pad was checked for shorts to the tab pads
adjacent to it. One short was found and corrected.
The pads were masked off with tape and the card was painted with several
coats of enamel paint to insulate and protect the traces.
Wire wrap pins were installed upside down in the outter holes in the
outter row of pads on each side. The excess length of the pins were cut
off were they protruded thru the bottom face of the card. This left the
pins protruding approximately .165 inch from the top face of the card.
Jumper wires were attached on the top face between the holes in the inner
row of pads on each side to the corresponding inner holes in the outter
row of pads on each side. This connected each pin to its corresponding
trace from the circuit card tab.
CONCLUSION:
The extender board constructed brings the CC-40 cartridge port signals
out from the small cartridge port connector to a larger test point area.
The 2 rows of pins on the extender card allow easy access to the signals
for attaching lab equipment. The jumper wires provide a means of
reordering the signals on the pins, from a physical order to a logical
order, once the signals have been identifided.
===========================================================================
EXTENDER CARD:
<--.5" --><------ 1.050" ------><--.5" -->
----------------------
.25" |!!!!!!!!!!!!!!!!!!!!| |
---------- !!!!!!!!!!!!!!!!!!!! ---------- |
| | j !!!!!!!!!!!!!!!!!!!! j | |
| | u !!!!!!!!!!!!!!!!!!!! u | |
| m !!!!!!!!!!!!!!!!!!!! m | |
2" |p p !!!!!!!!!!!!!!!!!!!! p p | |
|i e !!!!!!!!!!!!!!!!!!!! e i | |
| |n r !!!!!!!!!!!!!!!!!!!! r n | |
| |s s !!!!!!!!!!!!!!!!!!!! s s | |
| | _ !!!!!!!!!!!!!!!!!!! \ _ | |
|. ./ \o !!!!!!!!!!!!!!!!!! \ \o/ \o=o | |
| | !!!!!!!!!!!!!!!!! \ \ | |
| |. . o !!!!!!!!!!!!!!!! \ \ \o o=o | |
| | !!!!!!!!!!!!!!! \ \ \ | |
| |. . o !!!!!!!!!!!!!! \ \ \ \o o=o | |
| | !!!!!!!!!!!!! \ \ \ \ | |
| |. . o !!!!!!!!!!!! \ \ \ \ \o o=o | |
| | !!!!!!!!!!! \ \ \ \ \ | |
| |. . o !!!!!!!!!! \ \ \ \ \ \o o=o | |
| | !!!!!!!!! \ \ \ \ \ \ | |
| |. . o !!!!!!!! \ \ \ \ \ \ \o o=o | |
| | !!!!!!! \ \ \ \ \ \ \ | |
| |. . o !!!!!! \ \ \ \ \ \ \ \o o=o | |
| | !!!!! \ \ \ \ \ \ \ \ |
| |. . o !!!! \ \ \ \ \ \ \ \ \o o=o | 6"
| | !!! \ \ \ \ \ \ \ \ \ |
| |. . o !! \ \ \ \ \ \ \ \ \ \o o=o | |
| | ! \ \ \ \ \ \ \ \ \ \ | |
|. . o \ \ \ \ \ \ \ \ \ \ \o o=o | |
3.75" | \ \ \ \ \ \ \ \ \ \ | |
|. . o \ \ \ \ \ \ \ \ \ \o o=o | |
| | \ \ \ \ \ \ \ \ \ | |
| |. . o \ \ \ \ \ \ \ \ \o o=o | |
| | \ \ \ \ \ \ \ \ | |
| |. . o \ \ \ \ \ \ \ \o o=o | |
| | \ \ \ \ \ \ \ | |
| |. . o \ \ \ \ \ \ \o o=o | |
| | \ \ \ \ \ \ | |
| |. . o \ \ \ \ \ \o o=o | |
| | \ \ \ \ \ | |
| |. . o \ \ \ \ \o o=o | |
| | \ \ \ \ | |
| |. . o \ \ \ \o o=o | |
| | \ \ \ | |
| |. . o \ \ \o o=o | |
| | \ \ | |
| |. . o \ \o o=o | |
| | \ | |
| |. . o o o=o | |
------------------------------------------
<---------------- 2.050" ---------------->
=============================================================================
CC-40 PROJECT REPORT # 3
OBJECTIVE: Expand CC-40 System RAM from 6K to 18K.
PROCEDURE:
The 6K of RAM installed in the CC-40 consists of 3 HM6116-LP3 2K Static
RAM chips. RAM chip #1 and RAM chip # 2 were removed and 2 28 pin low
profile sockets were installed in their place.
2 HM6264-LP15 8K Static RAM chips were installed in the sockets.
The 2K RAM is 24 pin and the 8K RAM chip is 28 pin. The 8K RAM chip is
pin compatible with 23 out of the 24 pins of the 2K RAM chip. The WE NOT
signal must be replaced by A11. See attached sheet.
The 4 additional pins of the 8K RAM chips must be supplied the following
signals:
Pin 1 -- No connection
Pin 2 -- A12
Pin 27 -- WE NOT
Pin 28 -- VCC
A12, VCC, and WE NOT were already supplied to the appropriate pins for
the 8K RAM chips by the CC-40, as these pins are not used by the 24 pin
2K RAM chips.
A jumper block in the CC-40 allows the WE NOT signal to be replaced by
A11 for the 8K RAM chip. The jumper block was reconfigured as shown on
the attached sheet.
==============================================================================
HM6116LP-3 2K RAM AND HM6264LP-15 8K RAM PINNOUTS:
2K OUTSIDE 8K INSIDE
1 NC VCC 28
__
2 A12 WE 27
A7 3 A7 CS2 26 VCC
A6 4 A6 A8 25 A8
A5 5 A5 A9 24 A9
__
A4 6 A4 A11 23 WE
__ __
A3 7 A3 OE 22 OE
A2 8 A2 A10 21 A10
___ ___
A1 9 A1 CS1 20 CS1
A0 10 A0 D7 19 D7
D0 11 D0 D6 18 D6
D1 12 D1 D5 17 D5
D2 13 D2 D4 16 D4
GND 14 GND D3 15 D3
==========================================================================
CC-40 RAM MEMORY JUMPER BLOCK:
Jumper block configured for 2K chips:
___
__ / \
WE ______0 0_______ pin 23 RAM chip # 1
\ |
\ |
A11 _____0 \ 0
| __\
| / \
| 0 0_______ pin 27 RAM chips # 1 and # 2
| \
| \
|___0 \__0_______ pin 23 RAM chip # 2
Jumper block configured for 8K chips:
__
WE ______0 0_______ pin 23 RAM chip # 1
\ |
\ |
A11 _____0 \ 0
| \__\/
| \
| 0 0_______ pin 27 RAM chips # 1 and # 2
| \
| \
|___0 \__0_______ pin 23 RAM chip # 2
\___/
============================================================================
CC-40 MEMORY MAP1:
DECIMAL HEX DESCRIPTION SIZE
-------------------------------------------------------------------------
0 0000
REGISTER FILE 128 BYTES PROCESSOR RAM
127 007F
-------------------------------------------------------------------------
128 0080
UNUSED 128 BYTES
255 00FF
-------------------------------------------------------------------------
256 0100
PERIPHERAL FILE 256 BYTES MEMORY MAP I/O
511 01FF
-------------------------------------------------------------------------
512 0200
UNUSED 1.5K
2047 07FF
-------------------------------------------------------------------------
2048 0800
SYSTEM RAM 2K INSTALLED
4095 0FFF
-------------------------------------------------------------------------
4096 1000
SYSTEM RAM 2K INSTALLED
6143 17FF
-------------------------------------------------------------------------
6144 1800
SYSTEM RAM 6K NOT INSTALLED
12287 2FFF
-------------------------------------------------------------------------
12288 3000
SYSTEM RAM 2K INSTALLED
14335 37FF
-------------------------------------------------------------------------
14336 3800
SYSTEM RAM 6K NOT INSTALLED
20479 4FFF
-------------------------------------------------------------------------
20480 5000
CARTRIDE PORT 32K
53247 CFFF
-------------------------------------------------------------------------
53248 D000
SYSTEM ROM 8K
61439 EFFF
-------------------------------------------------------------------------
61440 F000
UNUSED 2K
63487 F7FF
-------------------------------------------------------------------------
63488 F800
PROCESSOR ROM 2K
65536 FFFF
-------------------------------------------------------------------------
============================================================================
CC-40 MEMORY MAP: AFTER 12K RAM ADDED:
DECIMAL HEX DESCRIPTION SIZE
-------------------------------------------------------------------------
0 0000
REGISTER FILE 128 BYTES PROCESSOR RAM
127 007F
-------------------------------------------------------------------------
128 0080
UNUSED 128 BYTES
255 00FF
-------------------------------------------------------------------------
256 0100
PERIPHERAL FILE 256 BYTES MEMORY MAP I/O
511 01FF
-------------------------------------------------------------------------
512 0200
UNUSED 1.5K
2047 07FF
-------------------------------------------------------------------------
2048 0800
SYSTEM RAM 2K INSTALLED
4095 0FFF
-------------------------------------------------------------------------
4096 1000
SYSTEM RAM 8K INSTALLED
12287 2FFF
-------------------------------------------------------------------------
12288 3000
SYSTEM RAM 8K INSTALLED
20479 4FFF
-------------------------------------------------------------------------
20480 5000
CARTRIDE PORT 32K
53247 CFFF
-------------------------------------------------------------------------
53248 D000
SYSTEM ROM 8K
61439 EFFF
-------------------------------------------------------------------------
61440 F000
UNUSED 2K
63487 F7FF
-------------------------------------------------------------------------
63488 F800
PROCESSOR ROM 2K
65536 FFFF
-------------------------------------------------------------------------
===========================================================================
CC-40 PROJECT REPORT # 4
OBJECTIVE: Determine pinnout of CC-40 cartridge port.
PROCEDURE and OBSERVATIONS:
The following CC-40 cartridge port signals were identified by observing
the signals with the logic analyzer.
The R/W(NOT) signal was identified by comparing the R/W(NOT) signal on
the microprocessor to the port signals. The R/W(NOT) signal was the used
to qualify the logic analyzer input, allowing signals to be observed only
during a write condition.
First, the data bus signals were identified. By observing the signals
while writing a progressive sequence of numbers (00 to FF, incrementing
by 01), to a single address, the pins carrying the data signals D0 thru
D7 were found and their order identified.
Next, the address bus signals were identified. By observing the signals
while writing a single number to a progressive sequences of addresses
(1000 to 1FFF, 2000-2FFF etc., incrementing by 0001), the pins carrying
the address signals A0 thru A15 were found and their order identified.
The signals A0 thru A7 were found to be available, demultiplexed from the
D0/A0 thru D7/A7 signals.
Then, with the analyzer qualify turned off, the control signals were
idenified. By observing the relationship between the various signals and
comparing them to the timing diagram in the 70C20 microprosessor manual
the control signals CLKOUT, ENABLE(NOT), and ALATCH were identified.
A system derived control signal that I have named DELAYED
ALATCH(NOT)+READ was also identified. DELAYED ALATCH(NOT)+READ is the
inverse of ALATCH and follows the ALATCH signal by one time state when
R/W(NOT) is HI. This signal is not present (HI), when R/W(NOT) is LOW. I
deduce that this signal is available for memory timing control.
The +5 VOLT and GROUND signals were identified by obverving the signals
with an oscilliscope while loading and unloading the signals thru a 2K
ohm resistor to ground or +5 volts.
The CRAM(NOT) and CROM(NOT) signals were identified by observing these
signals with the oscilliscope. I found that they were floating just above
the ground potential. (They had been shown as LOWs by the logic
analyzer.) After attaching 10K ohm pull-up resistors to +5 volts these
signals were again observed with the logic analyzer. They were found to
be active LOW during access to specific blocks of memory addresses.
CRAM(NOT) LOW for block 5000 thru 8FFF and CROM(NOT) LOW for block 9000
thru CFFF. These two signals are available to enable memory attached to
the cartidge port.
The RESET(NOT) and INT3(NOT) signals were identified with the logic
analyzer, by obverving the vector addresses generated when they were
pulled low.
I was not able to identify 3 of the 40 cartridge port signals. The
signals on pin 17 and pin 3 are both LOW and were never obverved to
change state during any tests. The signal on pin 39 has an infrequent
pulse during accesses to the system ROM chip, address range D000 thru
EFFF, particularly addresses D4F6 and D5FE. Since the system ROM is 32K,
mapped into an 8K slot in the system memory map, it is possible that this
signal relates to bank switching of various ROM address blocks into the
8K slot. I have not been able to verify the exact function of this pin at
this time.
CONCLUSION:
Of the 40 pins of the cartridge port, the 37 pins that were identified
provide access to all major data, address, and control lines neseccary to
interface external memory or I/O circuits. Since the D0/A0 thru D7/A7
multiplexed data/address lines are available demultiplexed to distinct A0
thru A7 signals, an external demultiplexing circuit is not needed to
access the A0 thru A7 address signals. . Additionally, since the
CROM(NOT) and CRAM(NOT) signals are available, an external address
decoding circuit is not needed to interface external memory in the
5000-8FFF or 9000-CFFF ranges.
============================================================================
CC-40 CARTRIDGE PORT PINOUT:
TOP
|---------------------------------------------------------------|
E | 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 |
D | |
G | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
E |---------------------------------------------------------------|
____
1 GND 21 CROM
2 +5 VOLT CONSTANT 22 A6
3 UNKNOWN (LOW) 23 A5
4 A9 24 A4
5 A11 25 A2
______
6 DELAYED ALATCH + READ 26 A0
_____
7 RESET 27 GND ?
____
8 INT3 28 D2
9 CLKOUT 29 D1
_
10 R/W 30 D0
______
11 ENABLE 31 D6
___
12 A14 32 D5
13 ALATCH 33 D4
14 D3 34 D7
____
15 A1 35 CRAM
16 A3 36 A10
17 UNKNOWN (LOW) 37 A8
18 A12 38 A15
19 A7 39 UNKNOWN (PULSE)
20 +5 VOLT SWITCHED 40 A13
===========================================================================
CC-40 CARTRIDGE PORT SIGNALS:
SIGNAL DESCRIPTION
ALATCH Logic 1 while port C (multiplexed address/data bus) asserts a
memory address.
R/W Logic 1 for read cycle, logic 0 for write cycle.
______
ENABLE Logic 0 for external (off processor) memory cycle.
CLOCKOUT Output clock for memory control timing.
A0 - A7 Addresses A0 thru A7 demultiplexed from D0/A0 thru D7/A7
signals.
D0 - D7 Multiplexed data lines D0/A0 thru D7/A7.
____
CRAM Logic 0 for memory bank 5000-8FFF enable.
____
CROM Logic 0 for memory bank 9000-CFFF enable.
____
INT3 Logic 0 to initiate a level 3 interrupt.
_____
RESET Logic 0 to initiate a level 0 interrupt (RESET).
&DELAYED
ALATCH+READ Logic 0 for one time state immeadiately following the
ALATCH signal return to logic 0 when R/W(NOT) is logic 1.
(Most likely used for memory address timing control)
===========================================================================
CC-40 PROJECT REPORT # 5
OBJECTIVE: Determine pinnout and function of CC-40 peripheral port.
PROCEDURE and OBSERVATIONS:
The CC-40 computer has an 8 pin peripheral port called a HEX-BUS
interface. The HEX-BUS port signals were identified by observing the
signals with the logic analyzer, while exercising the CC-40's built-in
I/O commands.
HEX-BUS PORT PINOUT: See attached sheet.
The HEX-BUS is a 4-bit wide parallel I/O bus. The CC-40 expects data to
be returned over the HEX-BUS to the CC-40 from the peripheral in response
to all built in commands such as OPEN, CLOSE, SAVE, LOAD, etc. This
requires that the peripheral be an intellegent I/O device, designed to
respond with the proper return data when accessed.
The HEX-BUS can be accessed directly, bypassing the CC-40's built in I/O
commands. Reading or writing to the proper memory mapped I/O address
will output data to or input data from the HEX-BUS. Additionally the
BAV(NOT) and HSK(NOT) lines are available as memory mapped I/O addresses.
The BAV(NOT) line can be sensed or controlled by reading or writing data
to or from the proper address. The HSK(NOT) line can be controlled
(output HI or LOW), but can not be sensed (no input capability).
HEX-BUS MEMORY MAPPED I/O ADDRESSES:
Address:
Decimal Hex Description
274 0112 HEX-BUS DATA D0-D3 (4 BITS OF DATA)
D4-D7 OF THIS BYTE NOT USED
___
275 0113 BAV LINE D0 0=LOW 1=HI FOR INPUT OR OUTPUT
D1-D7 OF THIS BYTE READ LOW 0000000
AND ARE NOT USED
___
276 0114 HSK LINE D1 0=LOW 1=HI FOR OUTPUT (NO INPUT)
D0, D2-D7 ARE NOT USED
The RESET(NOT) and INT3(NOT) signals were identified with the logic
analyzer, by observing the vector addresses generated when they were
pulled low.
I was not able to indenitfy 3 of the 40 cartridge port signals. The
signals on pin 17 and pin 3 are both LOW and were never observed to
change states during any tests. The singal on pin 39 has an infrequesnt
pulse during accesses to the system ROM chip, address range D000 thru
EFFF, particularly addresses D4F6 and D5FE. Since the system ROM is 32K,
mapped into an 8K slot in the system memory map, it is possible that this
signal relates to bank switching of various ROM address blocks into the
8K slot. I have not been able to verify the exact funtion of this pin at
this time.
CONCLUSION:
Of the 40 pins of the cartridge port, the 37 pins that were identified
provide access to all major data, address, and control lines neseccary to
interface external memory or I/O circuits. Since the D0/A0 thru D7/A7
multiplexed data/address lines are available demultiplexed to distinct A0
thru A7 signals, an external demultiplexing circuit is not needed to
access the A0 thru A7 address signals. Additionally, since the
CROM(NOT) and CRAM(NOT) signals are available, an external address
decoding circuit is not needed to interface external memory in the
5000-8FFF or 9000-CFFF ranges.
========================================================================
CC-40 HEX BUS PINOUT:
__
______| |______
| |
| 1 2 3 4 |
| |
| 5 6 7 8 |
|----------------|
PIN NAME SIGNAL FUNCTION
1 GND GROUND SIGNAL RETURN
___
2 BAV BUS AVAILABLE LOGIC 0 (LOW) BUS IN USE BY CC-40 FOR OUTPUT
LOGIC 1 (HI) BUS AVAILABLE FOR INPUT
3 D1 DATA BIT 1
4 D0 DATA BIT 0
5 D2 DATA BIT 3
6 D3 DATA BIT 2
7 NOT USED NO CONNECTION
___
8 HSK HANDSHAKE LOGIC 0 (LOW) VALID DATA IS PRESENT ON D0-D3
===========================================================================
CC-40 HEX BUS PINOUT:
__
______| |______
| |
| 1 2 3 4 |
| |
| 5 6 7 8 |
|----------------|
1 GND WHITE 5 D3
___
2 BAV BLACK 6 D2
3 D1 RED 7 SPARE (NOT CONNECTED)
___
4 D0 GREEN 8 HSK
============================================================================
CC-40 PROJECT REPORT # 6
4 BIT PARALLEL TO 8 BIT PARALLEL INTERFACE # 1
First design for a circuit to interface the CC-40 computer to an 8 bit
parallel input printer.
OPERATION:
The HSK(NOT), and BAV(NOT) normally HI. The 74LS244 buffer boosts the
CC-40 CMOS outputs to TTL levels.
1. The BAV(NOT) line HI (normal state) enables the ENABLE input of the
74LS75 latch, enabling the latch for input of data.
2. The lower 4 bits of a data byte are sent to the 74LS75 latch on
Di0-Di3.
3. The BAV(NOT) line is applied LOW to latch the 4 bits in the latch.
4. The upper 4 bits of a data byte are sent on Di0-Di3 and appear on
Do4-Do7.
5. The HSK(NOT) line is applied LOW to the printer STROBE(NOT) line,
strobing the data word from Do0-D07 into the printer.
6. The HSK(NOT) line is applied HI (normal state).
7. The BAV(NOT) line is applied HI (normal state).
Sequence repeated for each 8 bit data word sent to the printer.
SIGNAL TIMING:
___ ____ _____
BAV |_________________|
___ ______________ __________
HSK |__|
Di -<//////>---<//////>--------
SCHEMATIC:
___ _____ ______
BAV ___| |________________________|E |
| | | |
Di0 ___| B |________________________| L |_____ Do0
| U | \ | A |
Di1 ___| F |___________________|____| T |_____ Do1 P
| F | \ | | C |
Di2 ___| E |______________|____|____| H |_____ Do2 R
| R | \ | | | |
Di3 ___| |__________|___|____|____| 75 |_____ Do3 I
| | \ | | | |______|
___ | | | | | \________________ Do4 N
HSK ___| 244 |__ | | |
|_____| \ | | \_____________________ Do5 T
| | |
| | \_________________________ Do6 E
| |
| \_____________________________ Do7 R
| ______
\_________________________________ STROBE
SUBROUTINE TO RUN INTERFACE # 1.
PASS SINGLE ASCII CHARACTER TO SEND IN VARIABLE A AND B.
(example: ASCII CHARACTER 'E' is HEX 45. Send A=4 and B=5.)
10 SUB PRINTCHAR (A,B) !PASS CHARACTER TO SEND IN A AND B
20 FOR C = 1 TO 2 !DO 2 TIMES, ONCE FOR A AND ONCE FOR B
30 CALL POKE(274,A) !SEND CHARACTER (ONLY LOWER 4 BITS ARE OUTPUT)
___
40 CALL POKE(275,0) !SET BAV LOW - LACTH THE 4 BITS
50 A=INT(A/16) !SHIFT UPPER 4 BITS OF CHARACTER TO LOWER 4 BITS
60 CALL POKE(274,A) !SEND CHARACTER (ONLY LOWER 4 BITS ARE OUTPUT)
___
70 CALL POKE(276,0) !SET HSK LOW - STROBE 8 BITS TO PRINTER
___ ___
80 CALL POKE(276,2) !SET HSK HI - RETURN HSK TO NORMAL STATE
___ ___
90 CALL POKE(275,1) !SET BAV HI - RETURN BAV TO NORMAL STATE
100 A=B !PUT SECOND PART IN A TO SEND IT
110 NEXT C !GO DO IT AGAIN FOR SECOND PART
80 RETURN !RETURN TO CALLING PROGRAM
CONCLUSION:
This interface functioned satisfactory. There is no provision for sencing
a BUSY signal from the printer. This was not a problem since the
subroutine written in basic outputs the data to the printer at a speed
that is slower than the printer's maximun input speed. If the subroutine
is rewritten in assembly language, the interface will have to be upgraded
to sense the BUSY signal.
============================================================================
CC-40 PROJECT REPORT # 7
4 BIT PARALLEL TO 8 BIT PARALLEL INTERFACE # 2
Second design for a circuit to interface the CC-40 computer to an 8 bit
parallel input printer.
This design adds the ability to sense the printer BUSY signal.
OPERATION:
The HSK(NOT), and BAV(NOT) normally HI. The 74LS244 buffer boosts the
CC-40 CMOS outputs to TTL levels.
1. (T1) The BAV(NOT) line HI (normal state) enables the ENABLE input of
the 74LS75 latch, enabling the latch for input of data.
2. (T1) The lower 4 bits of a data byte are sent to the 74LS75 latch on
Di0-Di3.
3. (T2) The BAV(NOT) line is applied LOW to latch the 4 bits in the
latch.
4. (T3) The upper 4 bits of a data byte are sent on Di0-Di3 and appear on
Do4-Do7.
5. (T4) The HSK(NOT) line is applied LOW to the trigger input of the
74LS123 monostable multivibrator, causing it to produce a 1.8 ms
negative going pulse on the printer STROBE(NOT) line, strobing
the data word from Do0-D07 into the printer.
6. (T4) STROBE(NOT) now HI after the pulse is gated by a 74LS00 with
HSK(NOT) LOW to produce BEN(NOT) LOW which enables the 74LS125 3
state buffer (previously in tristated mode). This connects the
printer BUSY line to the BAV(NOT) line.
7. (T5) The BAV(NOT) line is then sensed for a HI (BUSY from the
printer). If BAV(NOT is HI (T5A) the software continues to sence
BAV(NOT) (T5) until it goes LOW (T5B). IF BAV(NOT) is LOW (T5B)
the printer is ready for the next data transmission.
9. (T6) HSK(NOT) is applied HI (normal state), tristating the 74LS125
buffer and readying the 74LS123 multivibrator.
7. (T7) The BAV(NOT) line is applied HI (normal state).
Sequence repeated for each 8 bit data word sent to the printer.
TIMING: | T1 | T2 | T3 | T4 | T5 | T5A| T5B| T6 | T7 |
___ _____ ____ ____
BAV |_______________<//// |__________|
___ _______________ __________
HSK |___________________|
Di -<///////>-<///////>--------------------------
______ _______________ ____________________________
STROBE |_|
____
BUSY _____________________<//// |_______________
___ __________________ __________
BEN |________________|
SCHEMATIC: _____
| 125 |
______________________________________| |____________ BUSY
/ | |
| | E|_______
| |_____| |
| |
| ____ |
| ___| 00 \ ____ |
| /---------------<___| )o--| 00 \ |
| | _____ |____/ | )o---/
| | | 123 | /---|____/
| | | _| / ______
| | | Q|__________/_____________________ STROBE
| | | |
| | | R|_______________/\/\/\/\_________ +5V
___ | _____ | |_ | | 5K
HSK ___|__| |__|______|A C|---||-----/
___ | | | |_____| 1000p ______
BAV __/___| |______________________________|E |
| | | |
Di0 ______| B |______________________________| L |__________ Do0
| U | \ | A |
Di1 ______| F |___________________|__________| T |__________ Do1 P
| F | \ | | C |
Di2 ______| E |______________|____|__________| H |__________ Do2 R
| R | \ | | | |
Di3 ______| |__________|___|____|__________| 75 |__________ Do3 I
| | \ | | | |______|
| 244 | | | | \___________________________ Do4 N
|_____| | | |
| | \________________________________ Do5 T
| |
| \____________________________________ Do6 E
|
\________________________________________ Do7 R
SUBROUTINE TO RUN INTERFACE # 2.
PASS SINGLE ASCII CHARACTER TO SEND IN VARIABLE A AND B.
(example: ASCII CHARACTER 'E' is HEX 45. Send A=4 and B=5.)
10 SUB PRINTCHAR (A,B) !PASS CHARACTER TO SEND IN A AND B
20 FOR C=1 TO 2 ! DO 2 TIMES ONCE FOR A AND ONCE FOR B
30 CALL POKE(274,A) !SEND CHARACTER (ONLY LOWER 4 BITS ARE OUTPUT)
___
40 CALL POKE(275,0) !SET BAV LOW - LATCH THE 4 BITS
50 A=INT(A/16) !SHIFT UPPER 4 BITS OF CHARACTER TO LOWER 4 BITS
60 CALL POKE(274,A) !SEND CHARACTER (ONLY LOWER 4 BITS ARE OUTPUT)
___
70 CALL POKE(276,0) !SET HSK LOW - STROBE 8 BITS TO PRINTER
___
80 CALL PEEK(275,D) !SENSE BAV LINE FOR PRINTER BUSY
90 IF D=1 THEN 80 !IF PRINTER IS BUSY KEEP SENCING
___ ___
100 CALL POKE(276,2) !SET HSK HI - RETURN HSK TO NORMAL STATE
___ ___
110 CALL POKE(275,1) !SET BAV HI - RETURN BAV TO NORMAL STATE
120 A=B !PUT SECOND PART IN A TO SEND IT
130 NEXT C !GO DO IT AGAIN FOR SECOND PART
140 RETURN !RETURN TO CALLING PROGRAM
CONCLUSION:
This interface functioned satisfactory. The BUSY signal from the printer
is sensed, stopping output from the computer until the printer is ready
again to accept input. The BUSY signal is output when the printer is
unable to accept an input (off line, buffer full, still processing last
input, etc.). The subprogram is slower than the maximum input speed of
the printer, so the subroutine should be rewritten in assembly language
to speed up the output to the printer.
===========================================================================
CC-40 PROJECT REPORT # 8
32 K MEMORY EXPANSION PROJECT
Design for a circuit to add an additional 32 K RAM memory to the CC-40
computer bringing system RAM up to 50 K total.
This design is for a cartridge for the cartridge port. It uses a single
32 K low power static RAM chip HM62256-LP15. It features 16 K of the RAM
configured as a write protected area for semi permanent storage. This
simulates a PROM, but may be rewritten by closing the write protect
switch. The other 16 K of the RAM functions as normal system RAM.
All 32 K of the RAM is maintained in the STANDBY (LOW POWER) mode when
the computer is shut off and when the computer is on, but this 32 K is
not being accessed. When the cartridge is removed a 3 volt Lithium
battery continues to maintain the RAM in STANDBY mode. This maintains
any data stored in the 32 K RAM at all times. The 32 K static RAM draws
0.1 mW in STANDBY mode and 200 mW in OPERATE mode.
All read and write cycles are timed by the CRAM(NOT) or CROM(NOT) signal
from the CC-40 applied to the RAM's CE1(NOT) input. All data, address
and read/write signals are applied, then the CE1(NOT) input is pulsed to
perform the read or write operation. This allows the data, address, and
read/write signals to be applied without critical regard to their timing.
TIMING: LOWER 16 K UPPER 16 K
WRITE READ WRITE READ
____ ____ _____ ____ _____ ______________ ________________
CRAM |___| |___|
____ ______________ ______________ ____ _____ ____ _______
CROM |___| |___|
DATA <//////////>- -<//////////>- -<//////////>- -<//////////>---
ADDRESS -<//////////>- -<//////////>- -<//////////>- -<//////////>---
_ __ __ ______________ __ __ ________________
R/W |________| |________|
___ _____ ______ ____ ___ _____ ______ _______
CLKOUT __| |_| |_| __| |_| |_|
______ ____ __ ____ ____ ____ __ ____ _______
ENABLE |___| |__ |___| |___| |__ |___|
CLKOUT and ENABLE signals are not used directly by this memory expansion
circuit, but are CC-40 system signals shown for their relationship to the
CRAM, CROM, and R/W signals.
CC-40 SYSTEM SIGNALS:
_
R/W logic 1 for read cycle, logic 0 for write cycle.
______
ENABLE logic 0 for external (off processor) memory cycle.
CLOCKOUT output clock for memory control timing.
____
CROM logic 0 for memory address 9000-CFFF access
____
CRAM logic 0 for memory address 5000-8FFF access
SCHEMATIC CC-40 32 K RAM EXPANSION:
________________
14 | |
ADDRESS ____/_______________________________________| A0-A13 |
| |
8 | |
DATA ____/_______________________________________| D0-D87 |
| |
3V | |
| |
- | | + D1 28 | |
GND -----||||----->|----+------------------------| VCC |
| | | | |
| | |
D2 | 20 | ___ |
VCC -------------->|----+----/\/\/\/\---+--------| CS1 |
+5V 2K | | |
(not switched) | | |
74LS00 | | |
____ 13 ___ 9 ___ | | |
CRAM -----| 4 \ 11 _| 3 \ 8 | | |
____ | )o--|_| )o-------------/ | |
CROM -+---|___/ |___/ | |
| 12 10 | 62256-LP15 |
| | |
o o | STATIC RAM |
/ SWITCH | |
o | |
|_____________________ | |
| | |
| | |
VCC ____________/\/\/\/\___| | |
+5V | 4.7K | | |
(switched) | | | |
| | 5 ___ | |
1 _|_14 +----| 2 \ 6 27 | __ |
_ _| 1 \ 3 74LS00 | )o----------| WE |
R/W -----|_| )o--------------|___/ | |
|___/ 4 | |
2 |7 14 | |
| ___________________| GND |
| | | |
| | | |
| | 22 | __ |
GND _________|_______________|___________________| OE |
| |
|________________|
=============================================================================
HN61256CP09 32K X 8-BIT ROM PINNOUT:
1 A15 VCC 28
2 A13 A14 27
3 A7 CS 26
4 A6 A8 25
5 A5 A9 24
6 A4 A12 23
__
7 A3 CE 22
8 A2 A10 21
9 A1 A11 20
10 A0 D7 19
11 D0 D6 18
12 D1 D5 17
13 D2 D4 16
14 GND D3 15
=============================================================================
Interupt Vectors Used by the CC-40
RESET FFFE F85D
INT1 FFFC FDA8
INT2 FFFA 080A
INT3 FFF8 080D
F85D 22 MOV AA,A
F85E AA
F85F 8B STA 0100
F860 01
F861 00
F862 8C BR D003
F863 D0
F864 03
0100 7 6 5 4 3 2 1 0
AA 1 0 1 0 1 0 1 0
MODE MODE INT3 INT3 INT2 INT2 INT1 INT1
1 0 CLR DIS CLR DIS CLR DIS
===========================================================================
CC-40 BUS SIGNALS:
SIGNAL FROM PIN DESCRIPTION
ALATCH 70C20 38 logic 1 while port C (multiplexed address/data
bus) asserts a memory address.
R/W 70C20 1 logic 1 for read cycle, logic 0 for write cycle.
______
ENABLE 70C20 39 logic 0 for external (off processor) memory
cycle.
CLOCKOUT 70C20 2 output clock for memory control timing.
____ RAM Bank
RAM0 GA 0800-0FFF
____ RAM Bank
RAM1 GA 45 1000-2FFF
____ RAM Bank
RAM2 GA 3000-4FFF
A0 GA 54 Addreess demultiplexed from D0/A0 signal
A1 GA 53 Addreess demultiplexed from D1/A1 signal
A2 GA 52 Addreess demultiplexed from D2/A2 signal
A3 GA 51 Addreess demultiplexed from D3/A3 signal
A4 GA 50 Addreess demultiplexed from D4/A4 signal
A5 GA 49 Addreess demultiplexed from D5/A5 signal
A6 GA 48 Addreess demultiplexed from D6/A6 signal
A7 GA 47 Addreess demultiplexed from D7/A7 signal
____ ROM Bank
CROM CP 21 9000-CFFF
____ RAM Bank
CRAM CP 35 5000-8FFF
GA = GATE ARRAY
CP = CARTRIDGE PORT
======================================================================
CC-40 BLOCK DIAGRAM
____________ A PORT 0-7 ___________________ __________
| 70C20 |________/____| GATE ARRAY #3 |_______| KEYBOARD |
| _______ | < | (KEYBOARD DECODE) | < |__________|
| | CPU | | (1) | (CONTROL LOGIC) |
| |_______| | / |___________________|
| _______ | B PORT 0-3 |
| | | |________/_____________|
| | P A C | | > | _________
| | E N O | | ________|__________ | LIQUID |
| | R D N | | | GATE ARRAY #2 |________| CRYSTAL |
| | I T | | (3) | (DISPLAY CONTROL) | > | DISPLAY |
| | P M R | | / |___________________| |_________|
| | H E O | | C PORT | _________________
| | E M L | | ADDRESS/DATA | ___________| SYSTEM CONTROL |
| | R O L | | AD0-AD7 | | > |_________________|
| | A R E | |_________/____________| | _________| SYSTEM SENSE |
| | L Y R | | <> | | | < |_________________|
| |_______| | (4) | | |
| _______ | / _______|__|_|__ I/O Z0112 ___________
| | 128 | | D PORT | GATE ARRAY #1 | DATA D0-D3 | HEX-BUS |
| | BYTES | | ADDRESS | |_______/______| I/O |
| | RAM | | A8-A15 | (ADDRESS) | <> | PORT |
| | Z0000 | |___/__________| (LATCH) | ___ | |
| | Z007F | | > | | BAV Z0113 | 8 PIN |
| |_______| | (2) | (ADDRESS) |____/_________| |
| _______ | / | (BLOCK) | <> | (DATA) |
| | 2K | | B PORT 4-7 | (DECODE) | ___ | (CONTROL) |
| | BYTES | |________/_____| | HSK Z0114 | |
| | ROM | | > (ALATCH) | (I/O CONTROL) |____/_________| |
| | ZF800 | | (R/W) | | > |___________|
| | ZFFFF | | (ENABLE) | (ROM BANK) | (5)
| |_______| | (CLKOUT) | (CONTROL) | /
|____________| | | ADDRESS ___________
ROM ZD000 | (SYSTEM) | A0-A7 | CARTRIDGE |
_________ CTRL ZEFFF | (SENSE AND) |____/________| PORT |
| SYSTEM |__/_________| (CONTROL) | > | |
| ROM 32K | < |_______________| ADDRESS | 40 PIN |
|_________| | | | | | A8-A15 | |
| | | | | | | | (4) | (ADDRESS) |
(5) (4) (3) ____ Z0800 | | | | | \____| (DATA) |
_________ RAM0 Z0FFF | | | | | > | (CONTROL) |
| SYSTEM |___/__________| | | | | ____ Z9000 | |
| RAM 2K | < | | | | CROM ZCFFF | |
|_________| | | | |__/____________| |
| | | | | | > | |
(5) (4) (3) | | | ____ Z5000 | |
____ Z1000 | | | CRAM Z8FFF | |
_________ RAM1 Z2FFF | | |__________________| |
| SYSTEM |___/_____________| | > | |
| RAM 8K | < | | |
|_________| | ADDRESS/DATA | |
| | | | AD0-AD7 (3) | |
(5) (4) (3) | \____| |
____ Z3000 | <> | |
_________ RAM2 Z4FFF | _ | |
| SYSTEM |___/________________| (ALATCH) (R/W) | |
| RAM 8K | < (ENABLE) (CLKOUT) | |
|_________| (2) | |
| | | \_____| |
(5) (4) (3) > |___________|
=============================================================================
OpCodes of the TMS 70C20 Microproccessor.
00 NOP 01 IDLE 05 EINT 06 DINT 07 SETC 08 POPST 09 STSP 0A RETS 0B RETI 0D LDSP 0E PUSHST 12 MOV Rn,A 13 AND Rn,A 14 OR Rn,A 15 XOR Rn,A 16 BTJO Rn,A 17 BTJZ Rn,A 18 ADD Rn,A 19 ADC Rn,A 1A SUB Rn,A 1B SBB Rn,A 1C MPY Rn,A 1D CMP Rn,A 1E DAC Rn,A 1F DSB Rn,A 22 MOV %n,A 23 AND %n,A 24 OR %n,A 25 XOR %n,A 26 BTJO %n,A 27 BTJZ %n,A 28 ADD %n,A 29 ADC %n,A 2A SUB %n,A 2B SBB %n,A 2C MPY %n,A 2D CMP %n,A 2E DAC %n,A 2F DSB %n,A 32 MOV Rn,B 33 AND Rn,B 34 OR Rn,B 35 XOR Rn,B 36 BTJO Rn,B 37 BTJZ Rn,B 38 ADD Rn,B 39 ADC Rn,B 3A SUB Rn,B 3B SBB Rn,B 3C MPY Rn,B 3D CMP Rn,B 3E DAC Rn,B 3F DSB Rn,B 42 MOV Rn,Rn 43 AND Rn,Rn 44 OR Rn,Rn 45 XOR Rn,Rn 46 BTJO Rn,Rn 47 BTJZ Rn,Rn 48 ADD Rn,Rn 49 ADC Rn,Rn 4A SUB Rn,Rn 4B SBB Rn,Rn 4C MPY Rn,Rn 4D CMP Rn,Rn 4E DAC Rn,Rn 4F DSB Rn,Rn 52 MOV %n,B 53 AND %n,B 54 OR %n,B 55 XOR %n,B 56 BTJO %n,B 57 BTJZ %n,B 58 ADD %n,B 59 ADC %n,B 5A SUB %n,B 5B SBB %n,B 5C MPY %n,B 5D CMP %n,B 5E DAC %n,B 5F DSB %n,B 62 MOV B,A 63 AND B,A 64 OR B,A 65 XOR B,A 66 BTJO B,A 67 BTJZ B,A 68 ADD B,A 69 ADC B,A 6A SUB B,A 6B SBB B,A 6C MPY B,A 6D CMP B,A 6E DAC B,A 6F DSB B,A 72 MOV %n,Rn 73 AND %n,Rn 74 OR %n,Rn 75 XOR %n,Rn 76 BTJO %n,Rn 77 BTJZ %n,Rn 78 ADD %n,Rn 79 ADC %n,Rn 7A SUB %n,Rn 7B SBB %n,Rn 7C MPY %n,Rn 7D CMP %n,Rn 7E DAC %n,Rn 7F DSB %n,Rn 80 MOVP Pn,A 82 MOVP A,Pn 83 ANDP A,Pn 84 ORP A,Pn 85 XORP A, Pn 86 BTJOP A,Pn 87 BTJZP A,Pn 88 MOVD %n,Rn 8A LDA @n 8B STA @n 8C BR @n 8D CMPA @n 8E CALL @n 91 MOVP Pn,B 92 MOVP B,Pn 93 ANDP B,Pn 94 ORP B,Pn 95 XORP B,Pn 96 BTJOP B,Pn 97 BTJZP B,Pn 98 MOVD Rn,Rn 9A LDA *Rn 9B STA *Rn 9C BR *Rn 9D CMPA *Rn 9E CALL *Rn A2 MOVP %n,Pn A3 ANDP %n,Pn A4 ORP %n,Pn A5 XORP %n,Pn A6 BTJOP %n,Pn A7 BTJZP %n,Pn A8 MOVD %n(B),Rn AA LDA @n(B) AB STA @n(B) AC BR @n(B) AD CMPA @n(B) AE CALL @n(B) B0 TSTA/CLRC B2 DEC A B3 INC A B4 INV A B5 CLR A B6 XCHB A B7 SWAP A B8 PUSH A B9 POP A BA DJNZ A BB DECD A BC RR A BD RRC A BE RL A BF RLC A C0 MOV A,B C1 TSTB C2 DEC B C3 INC B C4 INV B C5 CLR B C6 XCHB B C7 SWAP B C8 PUSH B C9 POP B CA DJNZ B CB DECD B CC RRB CD RRC B CE RL B CF RLC B D0 MOV A,Rn D1 MOV B,Rn D2 DEC Rn D3 INC Rn D4 INV Rn D5 CLR Rn D6 XCHB Rn D7 SWAP Rn D8 PUSH Rn D9 POP Rn DA DJNZ Rn DB DECD Rn DC RR Rn DD RRC Rn DE RL Rn DF RLC Rn E0 JMP E1 JN/JLT E2 JZ/JEQ E3 JC/JHS E4 JP/JGT E5 JPZ/JGE E6 JNZ/JNE E7 JNC/JL E8 TRAP 23 E9 TRAP 22 EA TRAP 21 EB TRAP 20 EC TRAP 19 ED TRAP 18 EE TRAP 17 F0 TRAP 15 F1 TRAP 14 F2 TRAP 13 F3 TRAP 12 F4 TRAP 11 F5 TRAP 10 F6 TRAP 9 F7 TRAP 8 F8 TRAP 7 F9 TRAP 6 FA TRAP 5 FB TRAP 4 FC TRAP 3 FD TRAP 2 FE TRAP 1 FF TRAP 0 FF TRAP 16
===============================================================================
C4ICS002
The following manual was by Charles Good from a copy he
had received. It contains much good informtion for those
wishing to experiment with the HexBux.
==============================================================================
This is the USER GUIDE to Texas Instruments' never released
HexBus interface, model number PHP1300, for the 99/4A. This
device is pictured on the bottom of many boxes that contained
beige plastic 99/4A consoles and was designed to allow the 99/4A
to use any of TI's HexBus peripherals. The HexBus interface is
described and illustrated in articles contained in the February,
March, and August 1983 issues of 99er magazine.
This text is being typed in December 1990 by Charles Good to give
the TI community access to this interesting historical curiosity.
The Hexbus Interface user guide is dated 1983. The PHP1300 is
listed in TI's last complete official price list, published in
June 1983, for $59.95.
Table of contents
SECTION 1.0: INTRODUCTION...........................1
1.1: Features...................................1
1.1.1: Power Jack...............................1
1.1.2: On/Off Switch............................1
1.1.3: Hexbus Connection........................2
SECTION 2.0: SET UP.................................3
SECTION 3.0: USING THE HEXBUS INTERFACE.............5
SECTION 4.0: COMMON PERIPHERALS.....................6
4.1: Wafertape Digital Tape Drive...................6
4.2: Printer/Plotter................................6
4.3: The RS232 interface............................6
4.4: The Centronix Type Parallel Output.............6
SECTION 5.0: COMMANDS AND PROGRAMMING STATEMENTS....7
5.1: The OLD command................................8
5.2: The SAVE command...............................9
5.3: The OPEN statement............................10
5.4: The CLOSE statement...........................11
5.5: The DELETE statement..........................12
5.6: The RESTORE statement.........................13
5.7: The INPUT statement...........................14
5.8: The PRINT statement...........................15
5.9: The LIST statement............................16
5.10: The EOF function.............................17
5.11: The VERIFY command...........................18
5.12: The FORMAT MEDIA command.....................19
5.13: The CATALOG command..........................20
5.14: The RESET BUS command........................21
APPENDIX A- Transferring data between wafertape and diskette..22
APPENDIX B- Transferring raw data over the Hexbus.............23
APPENDIX C- Using the TI-99/4A as a slave device..............26
APPENDIX D- Error messages and codes..........................27
SERVICE INFORMATION...........................................29
In case of difficulty.........................................29
THREE MONTH LIMITED WARRANTY..................................30
HOME COMPUTER SOFTWARE MEDIA..................................30
Warranty coverage.............................................30
Warranty duration.............................................30
Warranty disclaimers..........................................31
Legal remedies................................................31
Performance by TI Under Warranty..............................31
Texas Instruments Consumer Service facilities.................31
Inportant notice of disclaimer regarding the programs.........31
SECTION 1.0: INTRODUCTION
The Hexbus interface is an efficient, versatile device which enables
you to use the low cost hexbus peripherals (sold separately) with the
powerful TI99/4A Home Computer. The Hexbus Interface allows you much more
freedom in tailoring your computer system to your own needs.
You can also use the Hexbus Interface to transfer data between a
Compact Computer 40 Wafertape and a Disk memory System connected to a
TI-99/4A. Information stored by a Compact Computer 40 can then be used by
a large non-protable computer system.
1.1: FEATURES
The TI Hexbus Interface is a lightweight, compact unit designed to
rest beside the Home Computer console. The male 44 pin connector on the
left side of the Interface plugs directly into the slot on the right side
of a Home Computer console. If your system includes a Speech synthesizer
or a stand alone Memory Expansion Peripheral, these units go between the
console and the hexbus interface. The 44 pin slot on the right side of
the hexbus Interface allows you to attach the flex cable of a Peripheral
Expansion System if you desire.
1.1.1: POWER JACK
On the back of the Hexbus Interface is a power plug. The
accompanying transformer allows you to use household current to power your
Hexbus Interface. The transformer which was sold with the hexbus
Interface is the ONLY transformer which should be used with the unit.
Although most transformers seem identical and have similar plugs, certain
internal differences could cause a transformer from another device to
cause damage to the hexbus Interface or to the transformer itself.
1.1.2: ONN/OFF SWITCH
The onn/off switch is a sliding switch located on the back of the
unit, between the power jack and the 8-pin Hexbus connection. To turn the
unit on slide the switch to the left, towards the power jack. To turn the
unit off slide thw switch to the right, towards the hexbus connection
page 1
1.1.3: HEXBUS CONNECTION
Also on the back of the unit is the hexbus connection. This 8 pin
standard connector allows you to attach any of several peripheral devices
or any Hexbus compatible computer to your TI-99/4A Home Computer, using
the cables included with the various peripherals.
page 2
SECTION 2.0: SET UP
Setting up the hexbus interface is a simple process, but you should
be aware of several precautions. Please read this entire section before
you set up your hexbus Interface.
When you unpack the Hexbus Interface, you should find the Hexbus
ZInterface itself, a power transformer, and an eight conductor cable, as
well as this manual and other brochures. This is all you need to set up
your hexbus Interface with your TI-99/4A. (Save the packing material for
storing or transporting the interface.)
1. If other peripherals are already connected to the TI Home
computer, wait for their activity to stop, then turn them off.
2. Turn off the computer. CAUTION: The electronic components of
the Hexbus Interface can be damaged by discharges of static
electricity. To avoid damage, do not touch the connector
contacts or expose them to static electricity.
3. Be certain that the Hexbus Interface is turned off (the power
switch on the back is pushed toward the rectangular connector).
Plug the round power plug into the power jack.
4. Plug one end of the flat gray cable into the Hexbus
connector. Note that the connector is keyed and can only be
plugged in one way: with the raised tab on the top. Be careful
to plug the connector on both row of pins, not just the top row.
5. Plug the Hexbus Interface into the slot on the right side of
the TI/99/4A console. If your system includes a Speech
synthesizer or a memory Expansion Peripheral, these should be
between the console and the hexbus Interface. If you also have a
Peripheral Expansion system, the black flex cable plugs into the
slot on the right side of the hexbus Interface.
6. Plug the power transformer into a standard 110 volt household
plug.
7. If the hexbus peripherals which you will be using with your
TI-99/4A are not already set up, unpack each peripheral (sold
separately) and attach them as described in the owner's manual
for that peripheral. Plug the other end of the Hexbus cable from
the hexcbus interface into a free connector of a Hexbus
peripheral. Peripherals are normally arranged in a stack next to
the computer. You may link Hexbus devices to the computer in any
order.
page 3
CAUTION: To prevent damage to your system, make a practice of
disconnecting all devices before moving any part of the Hexbus
system. Even though the peripherals are light, the cables and
connectors may undergo needless strain if not detached. For
transport over long distances, repack the system in its original
packing materials.
8. Once all the hexbus peripherals are connected both to power
and to the hexbus Interface or to a Hexbus compatible peripheral,
ytou are ready to test your system. Turn the system on beginning
with the peripherals furthest from the console. The last thing
you should turn on is the console itself.
9. The monitor or television should display the master title
screen. Some peripherals have small indicator lights on the
front. While watching the indicator lights on the Hexbus
peripherals, press QUIT. The light on each Hexbus peripheral
should flash briefly and go off. This shows that the hexbus
Interface is properly connected to each of the peripheral
devices. If each light does not flash, turn off the console and
peripherals. Check the cable connections. then begin again with
step 8. If the lights still do not flash, see the "in Case of
Difficulty" section.
10. At this time, you may perform any of the tests suggested in
the individual peripheral manuals which are allowable BASIC
statements. (Note that the CALL IO statement does not work on the
TI-994A. any tests using this statement will not work.
page 4
SECTION 3.0: USING THE HEXBUS INTERFACE
With the hexbus interface attached to your TI Home Computer, you can
use any of the low cost, lightweight Hexbus peripherals. The Hexbus
interface recognizes command in BASIC, EXTENDED BASIC Assembly Language,
and Graphics Programming Language. Like any other peripheral device used
by the TI-99/4A, you must request a hexbus device to perform a certain
task. before the device can complete a request, in most cases the
computer must first set up a section of memory to communicate the device.
To do this, you must "open" the device. The general syntax of an OPEN
statement for a Hexbus divice in TI-99/4A BASIC is:
OPEN #file-number: "HEXBUS.device-number[.option-string]"[,access mode]
The file-number, the word HEXBUS, and the device-number must be
included in the OPEN statement. Depending on the peripheral and its
settings, you may want to include additional information to describe the
task you want to perform. all of the optional information is described in
detail in the user's manual of the particular peripheral device.
A device number is used to identify a particular device. The
allowable device numbers are:
DEVICE NUMBER | DEVICE
--------------|--------------------------------------
0 | All devices
1-8 | HX2000 Wafertape Digital Tape Drive
10-11 | HX1000 Printer/Plotter
16-17 | HX1010 Printer 80
20-23 | HX3000 RS232C Interface
40 | HX1100 Video Interface
50-53 | Centronix Type Parallel Output
60-67 | Calculator or Home Computer in Slave Mode
70 | HX3100 Hexbus modem
page 5
SECTION 4.0: COMMON PERIPHERALS
4.1: Wafertape Ditital Taoe Drive
The Texas Instruments Wafertape drive is a versatile, efficient, and
compact information storage device. The Wafertape drive enables you to
store, retrieve, and update programs and data quickly and accurately with
simple commands from the computer console. Information is stored on a
continuous tape housed in a slim cartridge called a wafer
4.2: Printer/Plotter
The printer/plotter is a Hexbus compatible printing device which uses
four colored pens to print both text and graphics. This printer enables
you to create attractive and precise graphics in up to four different
colors. It does not require the use of an RS232 Interface.
4.3: The RS232 Interface
The RS232 Interface peripheral is a communications adapter that
broadens the range of devices which you can attach to your TI-99/4A using
the TI Hexbus Interface. The RS232 Interface offers a serial port to
attach modems, plotters, and other devices which follow the EIA RS232C
serial interface specification. You can also use any cartridge, such as
the Terminal Emulator II, which requires the RS232 interface as long as
you do not have another RS232 Interface attached to your TI-99/4A.
4.4: The Centronix Type Parallel Output
The Centronix Type Parallel output is an optional port which can, at
a slight additional charge, be added to the RS232 Interface. This
optional parallel port enables you to use one of the many popular computer
printers built for parallel interfacing.
page 6
SECTION 5.0: COMMANDS AND PROGRAMMING STATEMENTS
The commands which you can use with TI BASIC and the hexbus
peripherals include the OLD, SAVE, OPEN, CLOSE, DELETE, RESTORE, INPUT,
PRINT, LIST, and EOF commands. Three commands not found in standard TI
BASIC are used with the Wafertape drive and require a special syntax - the
VERIFY, FORMAT MEDIA, and CATALOG commands. TI Extended Basic, available
as a plug-in cartridge for the TI-99/4A, also allows you to use the LINPUT
COMMAND. The RESET BUS command enables you to reset the status of all
Hexbus devices at once. Several special functions of the hexbus
Interface, the ability to transfer raw data and the ability to put the
Home Computer under the control of another Hexbus compatible computer, are
discussed in the appendices.
Not all commands are usable by all peripherals (you would not, for
example, get an INPUT from a Printer/Plotter). Some peripherals, such as
the Wafertape drive, have special commands. The allowable commands used
by each peripheral are explained in detail in the user's manual which
accompanies each device. The following sections describe the commands
available in TI BASIC
page 7
5.1: The OLD command
OLD HEXBUS.device code.filename
The OLD command allows you to recall and use a program previously
stored on a mass storage device such as the Wafertape device.
Example:
OLD HEXBUS.1.PROGRAM1
This statement recalls the program stored on the Wafertape device
under the name PROGRAM1. This program can now be run.
page 8
5.2 The SAVE command
SAVE HEXBUS.DEVICE CODE.FILENAME
The SAVE command allows you to store a program on a mass storage
device such as as the Wafertape drive. Before you save any information on
a mass storage device, though, the device must be prepared to accept the
information - a Wafertape must be FORMATTED.
Example:
SAVE HEXBUS.1.PROGRAM1
This statement saves the current program on the Wafertape device
under the name PROGRAM1.
page 9
5.3 The OPEN statement
OPEN #file-number:"HEXBUS.device dode[.option string]"[,file attributes]
Example:
100 OPEN #1: "HEXBUS.1.MYDATA",SEQUENTIAL, VARIABLE 255
This opens the Wafertape file named MYDATA as file 1 under the
device code of 1. (The device code of a Wafertape drive is determined by a
switch set on the back of the drive, as explained in the Wafertape user's
manual.) This file was previously created and stored. The file is opened
by default in DISPLAY format and UPDATE mode; you can read from this file,
and if it is the last file on the tape, you can also write to it.
VARIABLE 255 sets the record length to 255 characters, the maximum
allowable record on the TI-99/4A.
page 10
5.4: The CLOSE statement
CLOSE #file-number[,DELETE]
Example:
200 CLOSE #1
210 CLOSE #2,DELETE
This closes the file previously opened as number 1. The file opened
as #2 is closed and deleted - you can no longer use the information stored
in that file. Unless all files which were opened are also closed, the
program or data may be lost. DELETE may also be used as a separate
command to delete a file previously stored on a mass storage device.
page 11
5.5: The DELETE statement
DELETE "HEXBUS.device code.file name"
Example:
140 DELETE "HEXBUS.1.MYFILE"
This statement scratches the file called MYFILE from a Wafertape. If
the file is open, the statement will both delete and close the file. If
the file is not opened, the statement simply deletes the file. You can
also delete an opened file by adding the word DELETE to a CLOSE statement.
page 12
5.6: The RESTORE statement
RESTORE #file-number
Example:
190 RESTORE #1
This command positions a file opened as #1 to the first record. This
allows you to go back to the beginning of a file without closing the file
and opening it again.
page 13
5.7: The INPUT statement
INPUT #file-number:variable list
Example:
120 INPUT #1:A,B,C
This statement reads three numeric values from the file previously
opened as file number 1, and stores the values in the variables A, B, and
C. In this way, information stored by a TI-99/2 computer may be used by a
TI-99/4A Home computer
page 14
5.8: The PRINT statement
PRINT #file-number:print list
Example:
140 PRINT #2: "Current Balance",CURRBAL
This statement prints the text Current Balance and the value
contained in the variable CURRBAL to a file opened as #2. When used
without a file number, the PRINT statement places data in the computer
display.
page 15
5.9: The LIST statement
LIST "HEXBUS.device code[.switch-options]"[,line-list]
Example:
LIST "HEXBUS.20.BA=9600":"This line is to be printed",A
this example assumes a printer set to a transmission (baud) rate of
9600 is attached to the RS232 Interface. This statement will cause the
line of text enclosed in quotation marks to be printed along with the
value of the variable A.
page 16
5.10: The EOF function
EOF file-number
The EOF (end of file) function examines a previously opened data file
and returns a value which indicates where you are in the file. A zero
indicates that you are not to the end of the file; a negative one
indicates that you have reached the end of the file.
Example:
150 IF EOF(1) THEN 220
This statement will transfer program control to line 220 when the end
of the file opened as #1 is reached; otherwise program control will
continue to the next line.
Example:
145 PRINT EOF(1)
This statement causes the value 0 or -1 to be displayed, depending on
whether you are at the end of the file opened as #1.
page 17
5.11: The VERIFY command
SAVE HEXBUS.VE.device code.filename
The VERIFY command is uysed with a SAVE command to verify that the
information on the mass storage device is the same as the information in
the computer's memory. if there is a difference, an error is returned and
you may perform the SAVE command again. The VERIFY statement should be
used immediately after a SAVE command.
Example:
SAVE HEXBUS.1.PROGRAM1
SAVE HEXBUS.VE.1.PROGRAM1
The VERIFY statement, when paired with the SAVE command, will verify
that the information transferred between the computer's memory and a mass
storage device is accurate.
page 18
5.12: The FORMAT MEDIA command
OPEN #file-number:"HEXBUS.FORMAT MEDIA.device code"
The FORMAT MEDIA command will prepare the mass storage media of the
Wafertape device to accept information to be stored. The FORMAT MEDIA
command must be used before any information is stored on the Wafertape
device; if the command is issued later, any information stored on that
tape is lost. The FORMAT MEDIA command is explained in greater detail in
the Wafertape User's Manual.
Example:
OPEN #1:"HEXBUS.FORMAT MEDIA.1"
CLOSE #1
page 19
5.13: The CATALOG command
The CATALOG command produces the directory information from a
Wafertape device. This information, however, is in a form which is
difficult to display. The following program allows you to read the
directory from a Wafertape device:
100 CALL CLEAR
110 PRINT "FILE_NAME MAX_L REC_# FLG"
120 PRINT
130 OPEN #1:"HEXBUS.CA.1",FIXED 18,INPUT
140 INPUT #1:A$
150 PRINT TAB(1);SEG$(A$,2,12);
160 A1=ASC(SEG$(A$,14,1))
170 A2=ASC(SEG$(A$,15,1))
180 PRINT TAB(13);A2*256+A1;
190 A1=ASC(SEG$(A$,16,1))
200 A2=ASC(SEG$(A$,17,1))
210 PRINT TAB(19);A2*256+A1
220 A1=ASC(SEG$(A$,18,1))
230 ACTIVE$="N"
240 LAST$="N"
250 INTERNAL$="D"
260 IF A1<128 THEN 290
270 A1=A1-128
280 ACTIVE$="A"
290 IF A1<16 THEN 320
300 A1=A1-64
310 LAST$="Y"
320 IF A1<16 THEN 340
330 INTERNAL$="I"
340 PRINT TAB(26);ACTIVE$;INTERNAL$
350 IF LAST$="N" THEN 140
360 END
page 20
5.14: The RESET BUS command
At certain times, you might find it convenient to be able to reset
all files by clearing the communication lines. This is a good practice if
a program which opened a mass storage device such as the Wafertape device
ended in an error. To reset the communications lines, type:
OPEN #1:"HEXBUS.RB.0"
CLOSE #1
The two commands will tell each of the peripherals attached to the
Hexbus Interface to reset its status to closed. As the first of these
statements is executed, the indicator light on each of the peripherals
will flash on and then go off.
page 21
APPENDIX A- TRANSFERRING DATA BETWEEN WAFERTAPE AND DISKETTE
Data stored on a Wafertape device can be used directly by a Home
Computer and stored on a diskette using the Disk Memory System (sold
separately). Data stored on a diskette as a SEQUENTIAL file can also be
transferred without change to the Wafertape media. The information
contained in a RELATIVE file can be input from a diskette but only stored
on the Wafertape device as a SEQUENTIAL file.
The following program reads data from a Wafertape device, displays the
data on the screen, and then stores it on a diskette. It then closes all
files, reopens the diskette file, and reads and displays the data stored
on the diskette file.
100 OPEN #1:"HEXBUS.1.DATA",INPUT
110 OPEN #2:"DSK1.NEWDATA"
120 IF EOF(1) THEN 170
130 INPUT #1:VALUE$
140 PRINT #2:VALUE$
150 DISPLAY VALUE$::::
160 GOTO 120
170 CLOSE #1
180 CLOSE #2
190 OPEN #3:"DSK1.NEWDATA"
200 IF EOF(3) THEN 230
210 INPUT #3:VALUE$
230 DISPLAY VALUE$::::
230 GOTO 200
240 CLOSE #3
NOTE: If the data was stored by a TI-99/2 computer on a wafertape
device, the computer assumes that the longest record could be 255
characters. The TI-99/4A Home Computer, however, assumes a maximum length
of only 80 characters. Be sure, when you go from computer to computer, to
explicitly declare the longer of the two lengths.
page 22
APPENDIX B- TRANSFERRING RAW DATA OVER THE HEXBUS
In certain special purpose applications the TI-99/4A might need to
interface with a peripheral which does not support all of the commands
usually found in a Hexbus peripheral. To do this, the TI-99/4A must be
able to transfer information at the byte level - in the acutal 0s and 1s
of the machine language. This allows a user to control the hexbus
Interface and a peripheral directly, without letting the Hexbus Interface
interpret the signals automatically.
When transferring raw data over the Hexbus Interface, you must send a
COMMAND MESSAGE and then interpret the response from the peripheral. A
command message must contain all the following information in the order
given:
FIELD NAME NUMBER OF BYTES
Device Number 1
Command Code 1
File Number 1
Record Number 2
Buffer length 2
Data length 2
Data 2
page 23
The assigned device numbers are listed on page 5. The command codes
which are currently being used by the Hexbus Interface are as follows:
COMMAND CODE COMMAND
0 Open
1 Close
2 Delete opened file
3 Read data
4 Write data
5 Restore file
6 Delete file
7 Return status
8 Service request enabled
9 Service request disabled
10 Service request poll
11 You are the master
12 Verify read/write operations
13 Format and certify media
14 Catalog directory
15 Set characteristics
254 Null operation
255 Bus reset
page 24
To transfer raw data between a peripheral and the TI-99/4A, you must
use a PRINT statement followed immediately by an INPUT statement. The
PRINT statement sends a command message to the device; the INPUT
statement reads information from the device. Each program should contain
at least three pairs of statements - the first to open the device, then as
many pairs as needed to use the device, then a pair to close the device.
Before the first pair of statements, open the Hexbus Interface itself in
the TRANSFER RAW data mode. Be sure to close the Hexbus after you close
the device.
The following partial program illustrates the use of the TRANSFER RAW
data feature. Line 200 opens the Hexbus Interface itself. lines 260
through 290 build up a command message which is transmitted in line 300.
Line 310 accepts information from the RS232. Lines 350 and 360 show pairs
of lines which transmit commands to the RS232 and accept information in
return. The values of the character strings C$ and D$ must already have
been built up similar to the way the strings A$ and B$ were made.
200 OPEN #1:"HEXBUS.TR"
.
.
.
260 Z$=CHR$(0)
270 ZZ$=Z$&Z$
280 A$=CHR$(20)&ZZ$&CHR$(4)&Z$&CHR$(3)&Z$
290 A$+A$&ZZ$&CHR$(192)
300 PRINT #1:A$ :: REM OEPN RS232
310 INPUT #1:B$
.
.
.
350 PRINT #1:C$ :: REM WRITE TO DEVICE
360 INPUT #1:D$
.
.
.
500 CLOSE #1
page 25
APPENDIX C- USING THE TI-99/4A AS A SLAVE DEVICE
Normally the TI-99/4A acts as the controlling, or master, device.
All peripheral devices attached to the computer are tyically slave
devices, following the commands given by the TI-99/4A. If you have both a
TI-99/4A abd a Compact Computer 40, you can cause the CC40 to control the
TI-99/4A as a slave device. In this way, for example, you could display
information on the screen attached to the TI-99/4A.
In order to control the TI-99/4A as a slave device, you must first
open the computer as a slave device. To get the computer to act upon
instructions given it by a CC40, it must obtain instructions and then
reply to them. It does this by a pair of INPUT and PRINT statements. You
may take the TI-99/4A out of slave mode by closing the file where the
computer was declared a slave device.
The following partial program demonstrates how to use the TI-99/4A as
a slave device:
100 OPEN #1:"HEXBUS.SL.61"
110 .
.
.
300 INPUT #1:A$
305 REM PRINT EACH BYTE ON THE SCREEN
310 FOR I=1 TO LEN(A$)
320 PRINT ASC(SEG$(A$,1,I))
330 NEXT I
.
.
(analyze A$ using the command message discussed in Appendix B)
(packing responding message in B$)
.
.
400 PRINT #1:B$
.
.
(more INPUT and PRINT pairs)
.
.
500 CLOSE #1
page 26
APPENDIX D- ERROR MESSAGES AND CODES
Error Messages
-----------------------
99/4A|
Error|
Code | Error Type
------------------------
0 |No error
1 |Write protected
2 |Bad open attribute
3 |Illegal operation
4 |Out of table/buffer space
5 |Attempt to read past EOF
6 |Hardware error
7 |File errors
page 27
The Hexbus Interface, however, recognizes many more error conditions. The
following Hexbus errors will display as the corresponding TI-99/4A error.
99/4A | Hexbus |
Error Code| Error Code|Error Type
--------------------------------------------------------------------------
0 | 0 |No error
2 | 1 |Device/file characteristics
2 | 2 |Attribute error
7 | 3 |File not found
7 | 4 |File/device not open
7 | 5 |File/device already open
6 | 6 |Device error
5 | 7 |EOF error
7 | 8 |Data/file too long
1 | 9 |Write protect error
| 10 |"It was not me", a reply from a peripheral
| | device to a controlling device
4 | 11 |Directory full
4 | 12 |Buffer size error
3 | 13 |Command not supported
3 | 14 |File not opened for write
3 | 15 |File not opened for read
6 | 16 |Data error (checksum)
2 | 17 |Relative file not supported
2 | 18 |Sequential file not supported
2 | 19 |Append mode not supported
2 | 20 |Output mode not supported
2 | 21 |Input mode not supported
2 | 22 |Update mode not supported
2 | 23 |Error internal/display type
6 | 24 |Verify error
6 | 25 |Low battery in device
6 | 26 |Media not initialized
6 | 27 |Peripheral buss error
4 | 32 |Media full
3 | 254 |Illegal command in slave mode
6 | 255 |Bus time-out
7 | |All other errors
page 28
SERVICE INFORMATION
IN CASE OF DIFFICULTY
If the Hexbus Interface soes not appear to be working properly, check
the following:
1. Power: Be sure the power switch is on (pushed towards the power jack),
and the power jack is plugged into the back of the device, and the
transformer is plugged into a working electrical outlet.
2. Cables: Check that the proper cables are being used. Check for loose
or broken leads and connectors. Be sure that the cables are plugged in
securely. be sure the hexbus cables are pluggen in on both rows of pins
and that the raised tab is on top.
3. Software: Be sure all commands and statements are used as described in
this manual or in the Basic section of the User's Reference Guide.
4. Computer: Disconnect all peripherals and check to see that the
computer works properly with no peripherals attached. then carefully
reconnect each peripheral and check its operation.
5. If none of the above procedures corrects the difficulty, consult the
section entitled "If you have questions or need assistance" or refer to
the Service Information portion of the User's Reference Guide.
page 29
The next (last) three pages of this user guide describe the 3 month
limited warranty on the Hexbus Interface.
===========================================================================
C4ICS003
USING CC-40 PERIPHERALS WITH THE TI-74
By Maurice Swinnen
______ A B____C D
____________| |____________ ____| |____
|o o o o o o o o o o| |o o o o|
------------------------------ |o o o o|
10 9 8 7 6 5 4 3 2 1 ------------
(Read view TI-74) E F G H
In spite of reports to the contrary, it is possable to use all of the CC-40
peripherals with the TI-74. All you need is a special interconnecting cable.
The connections have been kept a deep secret by certain interested parties.
Experimentation revealed the following:
The TI-74 has a 10-pin connector as show above. Diameter of the pins is 0.016"
or 0.4mm. Distance between pins is 0.1" or 2.54mm. Does that ring a bell? Of
course it does! This is the same distance and diameter used with ICs and its
inline dip-sockets. The connector on the TI-74 uses only 8 of the 10 pins, pins
1 through 8. To make a good female connector for it, simply saw off half of a
16-pin dip-socket, preferrable one used for wire-wrap, with long, sturdy wire-
wrap stems. They allow for neat soldering. If you then shrink enough heat-
shrinkable tubing around each stem so as to fill up the space between stems, it
is possible to skrink one, large-diameter piece of heat-shrinkable tubing
around everything and obtain an almost perfect socket.
If you prefer to have all ten pins used, cut one side of a 24-pin dip-socket
and trim off two pins. That will give you a 10-pin socket. You could even
glue a small hump on the top, to prevent reverse plug-in. (I tried reverse
plug-in; it doesn't harm anything, but, of course, it doesnt hurt anything
either.) Editor Two Note: If you are building a cable to run from a TI-74
peripheral to a CC-40 and you plug in the cable wrong you will send +6 volts
to the CC-40 and get smoke ( I know I did this ).
For the HEX-BUS connector you will have to sacrifice a dual-plug HEX-BUS
cable. Take a long one, cut it in two, and share the other half with a
friend. When you strip the wires, you will find, or course, 8 of them. All
will be soldered to corresponding pins on your TI-74 connector, except one,
the green one. Insulate it, and forget it. Wires are soldered as follows:
TI-74 connector HEX-BUS connector Color
1 D Orange
2 N/C
3 C Red
4 E Brown
5 H Blue
6 G Black
7 B Yellow
8 A Grey
9 N/C
10 N/C
I tried it with the following peripherals with great success: Printer 80,
RS232 Interface, the Disk Drive and the Printer-Plotter. I tried to have
one TI-74 talk to one CC-40, without success. The TI-74 is willing, but
the CC-40 acts finicky and tells me that it memory may be lost. Well...
------------------------------------------------------------------------
C4ICS004
INTERFACE INFORMATION FOR THE TI-74 AND CC-40
By B. V. Tachkach of Wahroonga
New South Wales, Australia
The enlightening discussion of cabling to connect the TI-74 with the
CC-40 peripherals in V12n3p13 was a little confusing. The numbering
and lettering of the TI-74 and CC-40 hex bus ports was not consistent
with the pin numbering used by TI in its various application notes
and user manuals. In addition some additional information is needed
for successful use of the CC-40 peripherals with the TI-74, or
with the CC-40 for that matter.
RELATIVE PIN POSITION DIAGRAMS
4 3 2 1
________ ____
_____________| |____________ _____| |_____
| o o o o o o o o o o | | o o o o |
---------------------------------- | o o o o |
1 2 3 4 5 6 7 8 9 10 --------------
8 7 6 5
TI-74 DOCK-BUS INTERFACE CC-40 HEX-BUS INTERFACE
DOCK-HEX/BUS INTERFACE CABLE CONNECTIONS
TI-74 DOCK-BUS CC-40 HEX BUS
DESCRIPTION SIGNAL PIN SIGNAL PIN
DESCRIPTION SIGNAL PIN SIGNAL PIN
System power distribution - output PO 1*
System power distribution - input PI 2*
Data bit - least significant bit D0 3 D0 Data-LSB 1
Data bit D1 4 D1 Data 2
Data bit D2 5 D2 Data 7
Data bit - most significant bit D3 6 D3 Data-MSB 8
Handshake - I/O timing control line HSK 7 HSK 5
Bus Available - I/O Tracfic control line BAV 8 BAV 3
System reset line RESET 9*
Common Ground line GND 10 GND 4
Protect GND 6*
NOTES:
1. Pin numbers marked with an asterisk are not connected when DOCK-BUS
and HEX-BUS are interfaced.
2. Caution! Pin #1 of DOCK-BUS is at +6 volts, supplied by the TI-74.
Pin #2 is used to supply all DOCK-BUS peripherals from a common
power supply. This is not supported by the CC-40 system.
3. The Protective Ground (pin #6 of the CC-40 HEX-BUS should not be
joined to the floating reference power line (pin #10 of the
TI-74 DOCK-BUS)
DEVICE NUMBERS FOR CC-40 PERIPHERALS
MODEL DEVICE REMARKS DEVICE NUMBER
HX-1000 Printer Plotter Switch Selectable 10 to 11
HX-1010 Print 80 Internally changed 16 or 17
HX-2000 Wafertape Was not released 1 to 7
HX-3000 RS232 & Internally Selectable 20 to 23
Parallel Internally Selectable 50 to 53
QD-01 Disk Drive by Mechatronics 8
DEVICE NUMBERS FOR TI-74 PERIPHERALS
MODEL DEVICE REMARKS DEVICE NUMBER
Reserved for RESET-ALL 0
PC-324 Printer 12
QD-02 Disk Drive by Mechatronics 8
Editors Note:
The TI-74 DOCK-BUS pin assignments are consistent with page 17 of my
TI-74 BASICALC Technical Data Manual. The CC-40 HEX-BUS pin assignments
are consistenet with those in my HX-3000 RS232 Users Manual.
Some of the confusion resulted from Maurice Swinnen's definition of
the hex-bus interface by "looking into the cable" not by "looking into
the device". Other information which is helpful in the construction of
a cable between the TI-74 and a CC-40 peripheral includes the color
coding of the wiring in a HEX-BUS cable:
PIN COLOR PIN COLOR
1 Grey 5 Brown
2 Yellow 6 Green
3 Red 7 Black
4 Orange 8 Blue
Editor Number Two's Notes:
The above document was typed in by myself from the TI PPC Notes
newsletter. If anyone finds any errors please leave me a note
on Delphi (user name EICHER), and I will update the documentation
and re-upload it. I used this information to interface a Mechatronics
disk drive designed for the TI-74 to my CC-40.
V1.0
============================================================================
EDITORS NOTE: TI NO LONGER HAS ANY OF THIS EQUIPMENT FOR SALE, BUT IT
IS HERE FOR REFERENCE MATERIAL.
=============================================================================
C4ICS005
Charles,
Here are the accessory lists for the TI-CC40 and TI-74 as of July, 27 1994.
"R" denotes only reconditioned units are available. Prices do not include
shipping & handling charges or applicable taxes. Prices and availability
may change. To order, you may call 800-TI-CARES.
Model CC40
Unit Price Model Part Number Available
2.650 MAN CC40 1052906 0001 5000 Y
9.950 BASIC LRN CC40 1055934 0001 5000 Y
18.950 AC9201 1055601 8900 5000 Y
1.000 RUBBER FT CC-40 1500348 0003 5000 Y
1.450 KYBD O/L ALCC 1054704 0101 5000 Y
1.000 REF CARD ALCC 1052904 0001 5000 Y
40.000 SS1000 16K RAM 1052914 8900 5000 Y
20.000 SS1001 PASCAL 1056638 8900 5000 Y
20.000 SS3004 MEMO PROC 1055813 8900 5000 Y
20.000 SS3006 FINANCE 1054705 8900 5000 Y
20.000 SS3007 ELE ENG 1052924 8900 5000 Y
20.000 SS3008 STAT 1054706 8900 5000 Y
20.000 SS3009 MATH 1054707 8900 5000 Y
20.000 SS3024 GAMES 1054724 8900 5000 Y
Model TI74
Unit Price Model Part Number Available
1.250 DUMMY MOD. TI74 1063002 0039 5000 Y
2.550 QR CARD 74 1059857 0001 5000 Y
4.600 CARRY CASE 74 1059859 0001 5000 Y
18.950 AC9201 1055601 8900 5000 Y
7.950 PA201 1059137 0001 5000 Y
4.000 BATT AAA 4PK 1500165 0006 5000 Y
4.000 BATT AAA 4PK 1500165 0006 5000 Y
35.000 CASS CABLE-74/95 1060328 0001 5000 Y
50.000 8K RAM-74/95 1060297 0001 5000 Y
60.000 PCIF 74/95 1065751 0001 5000 Y
5.000 CHEM-74 1062908 0001 5000 R
5.000 FIN-74 1062106 0001 5000 R
5.000 MATH-74 1060308 0001 5000 Y
5.000 PASCAL-74 1060292 0001 5000 R
5.000 STAT-74 1060285 0001 5000 R
65.000 74-SYSTEM CASE 1064930 0100 5000 Y
5.950 TECH/MANUAL 74 1059853 9000 5200 Y
2.500 SCHEMATIC 74 1059853 9900 5200 Y
1.000 TERM, BATT + 1063002 0001 5000 Y
1.000 TERM, BATT - 1063002 0002 5000 Y
1.000 TERM, BATT COMM 1063002 0003 5000 Y
1.000 TERM, BATT COMM 1063002 0003 5000 Y
1.000 SPRING,BATTERY 1063002 0004 5000 Y
1.850 BOTTOM CASE 74 1063002 0005 5000 Y
1.000 B/DOOR 74/95 1063002 0006 5000 Y
1.850 KEY TOP FUNCTIO 1063002 0007 5000 Y
1.000 KEY TOP NUMERIC 1063002 0008 5000 Y
1.000 KEY TOP SPACE 1063002 0009 5000 Y
2.350 ELASTOMER K/B 1063002 0010 5000 Y
1.000 WINDOW TI74 1063002 0011 5000 Y
1.000 SHOCK ABSORBER 1063002 0012 5000 Y
1.000 RUBBER FOOT 1063002 0013 5000 Y
1.000 FOIL TOP ESD 1063002 0014 5000 Y
1.000 FOIL BOTTOM ESD 1063002 0015 5000 Y
1.000 FOOT,CONDUCTIVE 1063002 0016 5000 Y
1.000 INSULATOR I/O S 1063002 0017 5000 Y
1.000 OVERLAY METAL74 1063002 0018 5000 Y
1.000 TOPCASE 74 1063002 0019 5000 Y
1.000 DIODE IN60 1063002 0020 5000 Y
1.000 DIODE IN270 1063002 0021 5000 Y
1.000 CABLE, PCB RIBB 1063002 0022 5000 Y
1.000 RES ARRAY 10K 1063002 0023 5000 Y
1.400 CRYSTAL 4MHZ 1063002 0024 5000 Y
2.800 FET VP0808L 1063002 0025 5000 Y
5.600 LSI RC4193NB 1063002 0026 5000 Y
6.000 LSI SI7660 1063002 0027 5000 Y
22.000 LSI TMSC70009 1063002 0028 5000 Y
12.150 LSI HN61256PC93 1063002 0029 5000 Y
12.600 LSI HN6264LP 1063002 0030 5000 Y
1.000 CONN I/O,10 PIN 1063002 0031 5000 Y
1.000 FRAME, LCD DSPL 1063002 0032 5000 Y
1.650 POTENTIOMETER 1063002 0033 5000 Y
15.950 LCD DISPLAY 1063002 0034 5000 Y
6.600 LSI-HD44100 1063002 0035 5000 Y
1.000 ZEBRA STRIP B 1063002 0037 5000 Y
1.000 ZEBRA STRIP A 1063002 0038 5000 Y
1.000 I/D LABEL TI74 1063002 0040 5000 Y
56.900 KYBD ASSY 1063002 0041 5000 Y
If you need anything else, please contact me again.
Regards,
Paul King
-------------------------------------------------------------------------
TI Consumer Relations
Texas Instruments Internet: ti-cares@lobby.ti.com
P O Box 10508 M/S 5828 Phone: 806-741-2663
Lubbock, TX 79408-0053 Fax: 806-741-2690
-------------------------------------------------------------------------
------------------
Original text
From CGood @ SMTP (Charles Good) {CGOOD@osulima1.lima.ohio-state.edu}, on
7/25/94 2:57 PM:
To: ti-cares @ SMTP (ti-cares) {ti-cares@lobby.ti.com}
Please mail me a list of software and hardware products for the CC40
and TI74 which can be purchased from TI using a credit card via 800-
842-2737.
Thank you
Charles W. Good
=============================================================================
C4ICS006
Content-Type: TEXT/plain; SizeOnDisk=1547; name="40TO4A.TXT"; CHARSET=US-ASCII
Content-Description: 40TO4A.TXT
October 1990
USING TI-WRITER TO "L(oad) F(ile) RS232"
by Charles Good
Lima Ohio User Group
You can hook two different kinds of computers together with a
serial cable linking the RS232 ports of both computers.
You can then LOAD TEXT FILES DIRECTLY INTO TI-WRITER (or the
Funnelweb editor) from a word processor program running on the other
computer. You don't need a modem or a "terminal" program, and the
other computer doesn't have be compatible with the TI. Here's how.
After cableing the two computer's RS232s together boot TI-Writer,
type LF (load file) and <enter>, then type RS232.CR for the file name
and press <enter>. The TI's screen will appear to lock up as the TI
waits to receive the file from the RS232 port. It may be necessary
to specify a baud rate in the RS232.CR file name if the default 300
baud is not satisfactory. However, TI Writer (and Funnelweb) will
not accept baud rates greater than 600. With the other computer save
(or send) a text file already in memory, specifying RS232 as the save
file name. Text will then flow into TI Writer. When text transfer
is complete, press FCTN/4 on the TI and the received text file will
be displayed.
Since I don't have the TI99/4A HexBus interface, this is how I
transfer text from my CC40 to my TI for processing with Funnelweb and
printing with my Star printer.
============================================================================
C4ICS007
Content-Type: TEXT/plain; SizeOnDisk=4825; name="6KTO18K.TXT"; CHARSET=US-ASCII
Content-Description: 6KTO18K.TXT
May 1991
CC-40 6K TO 18K UPGRADE
(BB&&P editor's note: The original source and author of this article are
unknown. The article was provided to us by member James McCulloch, who
originally got it several years ago from a BBS. James successfully used these
instructions to upgrade his CC40 from 6K RAM (which is what new CC40s usually
have) to the maximum internal 18K RAM.)
DISCLAIMER: You assume sole responsibility for attempting this upgrade.
BEFORE ATTEMPTING THIS UPGRADE, BE ADVISED THAT THE COMPONENTS IN THE
CC-40 ARE SUBJECT TO DAMAGE FROM STATIC ELECTRICITY DISCHARGE. OBSERVE PROPER
ESD PRECAUTIONS.
I don't remember where these instructions came from, but I acquired them
about 5 years ago. Had no problems upgrading my CC-40, and was even able to
re-use the memory removed from the CC-40. Follow the instructions and all
should work out fine. Have fun!
Willy
You'll need:
--2^^^8K CMOS STATIC RAM ie, HM6264LP-15
--2^^^1/2" buss wire
--1^^^Spool solder wick (solder remover)
--Soldering iron and solder
--Common electronic type tools
READ ALL INSTRUCTIONS THOROUGHLY BEFORE STARTING
1....Take out batteries, cartridges, or any other connections to the CC40. Turn
the CC40 upside down and carefully remove the phillips head screws from the
CC40 and put in a secure place to keep from losing them.
2....With the CC40 still face down. Turn the CC40 until the words CC$) are
correctly facing you. This way there will be a common direction between these
instructions and the computer. Carefully and very slowly remove the back cover.
Make sure the keyboard is still flat on the table, otherwise later the keys may
fall out of place (this would be bad).
3....Make sure you are staticly discharged before touching the board. Do this
by touching any grounded metal object. With pliers gently pull up the battery
connectors by swaying the tabs back and forth as you pull them up. Just do the
ones with the wires attached.
4....Now remove all the black oxide screws from the circuit board, there should
be a total of 11 screws. Store these in a safe place where they won't get lost.
Carefully lift up the board side next to the battery holder and pull back
making sure the keyboard doesn't come up. If the top PC board will not come up
then gently press down over the contrast knob (on the right hand side) while
lifting up in the middle of the board. This will give more room for the knob to
slide out of the case.
5....Now remove the plastic insert that lies between the 2 PC boards. To do
this you start by lifting up on the right hand side of the plastic insert, when
it is out of all the screw holes then slide the plastic out. This will leave
the 2 PC boards which you will take out next. Caution when taking out the
boards try not to bend the connectors too much as they will get brittle and
break.
6....Remove the PC boards by lifting up on the ends nearest to the connector
ribbons and lift up both boards at the same time, but leave the keyboard down so
the keys stay put. After successfully removing the PC boards put the case in a
safe area where the keys won't get knocked out.
7....Turn the PC board so that the two long chips are at the top, with the
ribbon connectors also at the top. Move the two jumpers over one slot to the
right. 1 to 2 and 3 to 4. (These are the vertical jumper wires soldered in
place at the top part of the board and require desoldering as described
below.)
8....Remove the two top chips by removing the solder with the solder wick,
making sure not to get the board too hot. Carefully remove the two chips and
insert the two new chips in, making sure the new chips are inserted in the same
direction as the old chips. Pin 1 on the far left.
NOTE: IF YOU HAVE NEVER USED SOLDER WICK, OR HAVE HAD TROUBLE USING IT WITH
INSTALLED COMPONENTS. IT MAY BE BETTER TO CLIP ALL THE LEADS TO THE TWO IC'S
WITH SHARP DIAG. CUTTERS. THEN HEAT THE SOLDER ON EACH LEAD AND REMOVE EACH
LEAD (WHILE HEATED), FROM THE BOARD, WITH A PAIR OF NEEDLE NOSE PLIERS. AFTER
ALL THE LEADS HAVE BEEN REMOVED IN THIS MANNER, USE THE SOLDER WICK TO REMOVE
THE LEFT OVER SOLDER IN THE IC MOUNTING HOLES. OF COURSE THER ISN'T MUCH CHANCE
OF SALVAGING THE OLD MEMORY USING THIS METHOD. Willy
9....Solder in the new memory IC's and reassemble the CC40 in the reverse
manner of it's disassembly, making sure not to fatigue the connector ribbons
that connect the two boards together. After reassembly is complete turn on the
C40 and check the amount of memory using the FRE(0) command. It should return a
value of at least 18K.
THATS ALL FOLKS.
=============================================================================
C4ICS008
Content-Type: TEXT/plain; SizeOnDisk=7916; name="AEECART.TXT"; CHARSET=US-ASCII
Content-Description: AEECART.TXT
THE "ADVANCED ELECTRICAL ENGINEERING" CC40 SOFTWARE CARTRIDGE
reviewed by Charles Good
Lima Ohio User Group
This is one of the least common officially released CC40
cartridges. One reason for its rarity is that, although the cartridge
can still be purchased from CECURE Electronics, no user manuals are
available. TI sent CECURE only ONE copy of the user guide along with
their remaining stock of AEE modules. (Strangely enough TI also sent
CECURE large numbers of "Games 2" user guides. The "Games 2" module
does not exist. It was never released.) I know people who purchased
the AEE module "user guideless" from both TI and from CECURE.
Unfortunately it is really hard to figure out what the AEE software
does and how to use the module without the user guide. Fortunately
CECURE made me a xerox copy of their only user guide so I can, in this
review, give the public some idea about the Advanced Electrical
Engineering module's capabilities. The user guide seems quite well
written with lots of step by step examples, lots of graphs, and
detailed mathematical formulae showing the methods used to come up
with calculated results. I'll copy this user guide for copying cost
plus postage for anyone who owns the module and not the guide.
Here is the basic information you need to access the module's
software. Start by entering RUN "CONTENTS", including the quotes.
Using the up/down arrows gives you the names of the programs in the
cartridge. Although the guide doesn't tell you this, when CONTENTS
displays a program name you want to run you can start the program by
pressing the CC40's RUN button. You can also go to BASIC command mode
and enter RUN followed by a shortened program name to start a program
going. The shortened names are ACTIVE, BODE, COMPLEX, DFT, NETWORK,
PASSIVE, PLL, SIGNAL, and SY.
Active Filters (ACTIVE). You have your choice of Lowpass Filters,
Highpass Filters, or Bandpass Filters. For any of these you enter the
cutoff frequency, gain (dB), peaking factor and C1 (farads). The
computer calculates ohms of R1 R2 and R3 and C in farads.
Bode/Nyquist Calculations (BODE). Given a transfer function as a
ratio of polynomials, the program generates the data needed for
Bodeand Nyquist plots for specified frequency values. You can enter
up to 20 elements into the program. You enter a bunch of numerator
and denominator coefficients as well as starting and ending
frequencies and number of intervals and are given the opportunity to
edit these data. Output shows total frequeny, H (real and
immaginary), magnitude, dB, and angle.
Roots of a Polynomeal (COMPLEX). Using a 6K CC40 you can
calculate all roots, both real and complex, of up to a 100th degree
polynomeal in one variable with real coefficients. You enter an
initial estimate for "u" and "v" (these two values are often best left
at the default "0") and an allowable error (epsilon accuracy, often a
value of "0"). The computer then uses an iteration process to
calculate roots. You input the maximum number of iterations.
Discrete Fourier Transform (DFT). This program transforms a
complex time series to the frequency domain (DFT) and performs the
inverse transformation (IDFT) from the frequency domain back to the
time domain. Frequency representation is given in terms of magnitude
in dB and phase in degrees. You have the option of entering data from
keyboard or from a mass storage device. The user guide refers to a
wafertape drive, but a quickdisk drive also works.
Network Analysis (NETWORK). This computes the frequency response
of a general linear network composed of voltage dependent current
sources, resistors, capacitors, and inducers. With a 6K CC40 data
input can range from 2 nodes of 200 components to 13 nodes and 13
components. Presumably an 18K CC40 lets you enter even more data.
Output is a log or linear frequency sweep which depends on starting
and ending frequencies and on the number of specified intervals. For
each interval you get a listing of frequency, magnitude of output
voltage in dB, and phase in degrees.
Passive Lowpass Filters (PASSIVE). The program calculates values
for passive lowpass Butterworth and Tchebychff filters. You input
maximum stopband attenuation, maximum passband attenuation or
allowable ripple, frequencies of max and min stopband attenuation
realized, and terminal resistance.
Phase Locked Loop (PLL). For either an active or pasive loop
filter this program calculates the design parameters for a basic
second order phase locked loop. You enter gain in seconds, C in
farads, an intiger divisor, natural angular frequency, and the damping
factor. Output is R1-2 and the loop-noise bandwidth.
Series/Parallel Impedance Conversions (SP). Students in high
school and elementary college physics classes often have to make this
calculation. The program converts back and forth between a two
element series impedance network and an equivalent two element
parallel impedence network. You enter two series or parallel
resistances in ohms and get the total parallel or series resistance.
Signal Detection (SIGNAL). Sometimes it is necessary to determine
if an information bearing signal is present in the presence of noise,
such as in radar detection. This program uses the relationship
between two slightly overlapping normal sine wave distribution curves
to give the probability of a falsely declared or properly declared
signal. You enter the ratio of the two curve's standard deviations
and the signal-to-noise ratio or, for calculating the probability of
detection, a preset probability of a false alarm.
S<->Y,Z,H,G Parameter Conversions (SY). Small signal two port
"black boxes" are often described in terms of complex scattering
parameters (S) with a characteristic input/output transmission line
impedance (Z). The translation of these parameters to admittance (Y),
impedance, and hybrid (H) and (G) parameters is necessary to create
equivalent circuit models. The program converts S parameters to
Y,Z,H, and G or visa versa.
Subprograms: The AEE module contains subprograms that can be used
in user written BASIC programs that have nothing to do with electrical
engineering. Just plug in the AEE module and CALL xxx with the
necessary parameters passed from within a running user program (or
from command mode) to use these subprograms. Most of these CALLs
include a provision for optional formatted output to a printer. CALL
AU allows input and editing of a one dimensional array. CALL IR will
input a number with a prompt. CALL PR converts polar to rectangular
coordinates. CALL UP with program name and device number asks if you
want output diected to a printer. CALL YN with a question asks for a
yes/no answer.
For the specific calculations this software is designed to
generate this software cartridge does a nice job, and it is portable
so you don't need a desktop computer. The biggest deficiency of this
cartridge, in my opinion, is the lack of output in graphic format.
All output is a number or series of numbers printed on screen or on a
printer. Why didn't TI take advantage of the really neat graphing
capabilities of the 4 color hexbus printer/plotter with this
cartridge? The output of this cartridge is in many cases designed
around parabolas, sign waves, or circuit diagrams. It would be great
if the cartridge printed its output in these ways using the printer
plotter, much as modern "graphing calculators" display their output.
But alas all you get with the AEE cartridge is a bunch of numbers. As
far as I know there is no official TI software and very little user
written software that takes advantage of the neat graphing
capabilities of the TI printer/plotter.
=============================================================================
C4ICS009
Content-Type: TEXT/plain; SizeOnDisk=1350; name="DOCS.TXT"; CHARSET=US-ASCII
Content-Description: DOCS.TXT
DECEMBER 1991
DOCUMENTATION AVAILABLE TO LIMA UG MEMBERS
From Charles Good
Many used TI goodies are being bought and sold, often
without documentation. For the curious, and for those who
have purchased hardware and classic software that lacks
documentation, I have the following CC40 books and magazines
as well as printed documentation for the following hardware
and software which I am glad to make available for
examination and/or loan to Lima Ohio User Group members.
----------
CC40 RELATED DOCUMENTATION:
--HEXBUS MODEM USER GUIDE
--PRINTER 80 USER GUIDE, for the 80 column hex bus
thermal printer.
--CC40 MEMO PROCESSOR manual.
--CC40 USER'S GUIDE
--CC40 STATISTICS CARTRIDGE manual
--CC40 PASCAL CARTRIDGE USER'S GUIDE
--CC40 PASCAL CARTRIDGE REFERENCE GUIDE
--CC40 GAMES 1 CARTRIDGE manual
--CC40 RS232 USERS MANUAL. We also have this on disk.
--CC40 PRINTER/PLOTTER USERS MANUAL
--CC40 FINANCE CARTRIDGE manual.
--CC40 8K CONSTANT MEMORY RAM CARTRIDGE manual.
--WAFERTAPE DIGITAL TAPE DRIVE USER GUIDE. dated
08/11/83. We also have this on disk.
--LEARN BASIC: A GUIDE TO PROGRAMMING THE CC40. book by David Thomas.
----------
============================================================================
C4ICS010
--cgood:848799722:880673398:740247587:1912078336
Content-Type: TEXT/plain; SizeOnDisk=11197; name="HBINTFAC.TXT"; CHARSET=US-ASCII
Content-Description: HBINTFAC.TXT
NEVER RELEASED OFFICIAL TI PERIPHERALS:
THE HEXBUS INTERFACE; A KEY TO WHAT MIGHT HAVE BEEN
a hands on description by Charles Good
Lima Ohio User Group
The Hexbus Interface (PHP1300) allows you to control all the neat little
hexbus peripherals directly from the 99/4A console. With this interface and a
side car 32K (or 32K installed inside the console) you can create a fully
expanded system with a very small footprint (occupying little surface area).
If you paid full list 1983 TI prices, the cost of your expanded system would be
much less than an expanded system based on the peripheral expansion box.
If you have a box that contained a beige console you can see what a TI
Hexbus interface looks like. There is a picture of one on the bottom of the
box attached to the side of a console. TI listed this device in its last price
list (dated June 1, 1983) for $59.95, but it was never officially released.
Only a handful of original TI hexbus interfaces are known to exist. I have
such a 1983 TI hexbus interface on loan from Gary Taylor for this report, and I
now also have my very own BRAND NEW cloned hexbus interface. For years people
have been trying to clone TI's original interface and now it has been done. As
of right now I am one of two people to own one of these cloned interfaces.
More on this later.
Gary's official TI interface measures 8 x 3.5 x 2.25 inches. It connects
to the side o the console and has a connection on its right side for other
standard 99/4A peripherals or the peripheral expansion box cable. On the back
is an on/off switch, a power supply jack for the required model AC9201 6v 300ma
external power supply, and one hexbus connector. There is no serial number or
date code (ATA or LTA number) on Gary's interface, indicating that it is a
preproduction prototype. There is, however, an FCC identification number
(A929JWPHP1300), and a statement that the device has been approved by the FCC
for "class B" use in the home.
The following hexbus peripherals have been tested by me using a 99/4A
console and the hexbus interface with no problems. These are all very small
peripherals, and all of them except the RS232 can be run on batteries as well
as AC current. With the exception of the Printer 80 they all stack neatly on
top of each other. You can place the whole stack of peripherals on top of the
hexbus interface where it is connected to the side of the console. The entire
footprint of all these peripherals when stacked on top of the interface
OCCUPIES LESS TABLE SPACE than fire hose PE Box connector when connected to the
console. The PE Box connector sticks out frather from the right side of the
console than does the hexbus interface and stack of hex bus peripherals!
--Hexbus RS232 with parallel option: can be used to run any printer.
--Hexbus modem, doesn't require an RS232, 300 baud.
--Wafertape drive. This is a "never released peripheral" that I own. Up to
8 of these can be cabled together in a single system.
--Hexbus 4 color printer/plotter. This tiny printer can be addressed
directly and does not need an RS232.
--The Hexbus "Printer 80" 80 column thermal printer also works flawlessly
with the hexbus interface, but you can't stack it with the other peripherals.
Like the printer/plotter, the Printer 80 can be addressed directly and doesn't
require an RS232 interface. It uses fax paper or plain paper and a thermal
ribbon cartridge.
TI was developing a hexbus 5.25 inch floppy drive controller. I know of
two working examples of this controller in private hands, and one of these has
been tested successfully with a 99/4A hexbus interface.
Unfortunately, the Hexbus interface does not work properly with the
Mechatronic quickdisk drive, the one that uses 2.8 inch disks. You can save
programs to quickdisk, but you can't load them back off the disk into the
99/4A.
WHAT YOU CAN DO WITH THE HEXBUS INTERFACE:
According to TI's documentation that comes with the TI interface, the
device can be addressed in TI BASIC, TI EXTENDED BASIC, Assembly language, and
from the P-code peripheral. The usual syntax is
"HEXBUS.DEVICE_NUMBER.FILE_NAME". For example, to save a BASIC program to a
wafertape set up as device 2 (wafertape drives can be designated any number
from 1-8) you would type SAVE HEXBUS.2.PROGRAM and press <enter>. To list a
basic program to a printer attached to the hexbus RS232 you would enter LIST
"HEXBUS.50." where device 50 is the parallel output of the RS232. To list a
program to the printer plotter the syntax is LIST "HEXBUS.10."
I have used the interface with WORDWRITER, a cartridge version of TI
Writer. LF and then the file name HEXBUS.2.TEXTFILE will load TEXTFILE into
the edit buffer from wafertape device 2. PF and then HEXBUS.16. will print the
file directly to the Printer 80 (which is device 16).
The TI Hexbus Interface user guide was never officially published. It
would have been designated as document 1049000-1, and was last revised sometime
after March 1, 1983. (I have the March 1 revision. Errors in this revision
have been corrected in my copy of 104900-1.) This user guide suggests that you
can get a CC40 and 99/4A to talk to each other over the hexbus interface,
allowing the CC40 to store data on the 99/4A's drives and display information
on the 99/4A monitor. There is only limited truth to this. The documentation
includes a skeleton 99/4A BASIC program that is supposed to put the /4A in
"slave mode" so that it and its peripherals can can be controlled by a CC40
connected to the hexbus interface. The key word here is "skeleton". Big parts
are left out of this BASIC program, and nobody that I know who has a TI hexbus
interface can make this program work. Nobody has been able to SAVE or OLD a
CC40 program onto a 99/4A floppy drive or display CC40 text via a 99/4A onto a
monitor. You are supposed to be able to do this, but nobody can figure our
how.
You can use a CC40 (or TI74) to save data to a data file on wafertape and
then use the 99/4A to open the file and read the data into the 99/4A.
Wafertape drives are rare and not very reliable. It is really too bad that you
can't use the Mechatronic quickdisk drive with the hexbus interface.
THE KEY TO WHAT MIGHT HAVE BEEN:
Back in 1983 the hexbus interface would have been the key to a low cost
compact expanded 99/4A system. Lets compare costs, based on the rediculus full
list prices from TI's last official price list.
EXPANSION VIA THE PE BOX:
--PHP1200 Peripheral Expansion box...........$249.95
--PHP1220 RS232 Card.........................$174.95
--PHP1240 Disk Controller Card...............$249.95
--PHP1250 Floppy drive for PE box............$399.95
--PHP1260 32K card...........................$299.95
--PHP1800 Telephone coupler (modem)..........$199.95
----------------------TOTAL EXPANSION COST..$1574.70
EXPANSION WITH HEXBUS PERIPHERALS:
--You need a side car 32K and there is no such hexbus product. Doryt
Systems advertises one in the June 1983 99er......$175.00
--PHP1300^Hexbus Interface...................$ 59.95
--HX2000^^Wafertape Drive....................$139.95
--HX3000P^RS232 with parallel interface.....$124.95
--HX3100^^Hexbus modem.......................$ 99.95
----------------------TOTAL EXPANSION COST...$599.80
This would leave you with enough extra money to purchase additional hexbus
peripherals such as
--Additional wafertape drives. Up to 8 drives can be cabled together in
one system and you don't need any kind of "controller" interface.
--HX1000 4 color printer/plotter.............$199.95
--HX1010 Printer 80, released in 1984 at.....$249.95 (the TI impact
printer listed in 1983 for $750.)
So after listing it in their official price list, obtaining FCC
certification, and providing a color picture of the thing on each beige console
box, why didn't TI offer the Hexbus Interface to 99/4A users? I suspect the
answer is the failure of the wafertape drive to live up to expectations. My
wafertape drive, and those owned by a few other lucky collectors, are not very
reliable, particularly when operated on battery power. The key to system
expansion is reliable mass storage that is better than a cassette tape
recorder. Failure of the wafertape drive left the hexbus in 1983 with no mass
storage peripheral. But this may soon change!
============================================================================
C4CIS011
NEW 1993 HEXBUS PERIPHERALS:
reported by Charles Good
Lima Ohio User Group
A hobbyist in Germany named Michael Becker is making clones of TI's never
released Hexbus peripherals in limited quantities. (Michael Becker also makes
a quad density disk controller and a "speech in the PE box" card that includes
TEII speech in ROM usable from extended basic without occupying normal XB
program memory space. This card was shown at the Feb 1993 Fest West.)
--99/4A hexbus interface. I own one of these clones. It is built like a
tank in a solid metal enclosure resembling the enclosure of the Mechatronic 80
column peripheral. Like the original TI product, the clone plugs into the
side of the console and has a connector for the PE Box cable. Unlike the TI
original my clone has an LED which flickers to tell me that my interface is
funtioning, and it does not require a spearate power supply.
--5.25 inch DSDD hexbus disk controller. This can be used for mass
storage with the CC40, TI74, 99/2, 99/8, and with the hexbus interface can also
be used with the 99/4A. Michael Becker has a TI original (a very very rare
device, even rarer than a wafertape drive) and has dumped all the code in the
PAL chips so that he can produce duplicates. I expect delivery of my
controller in a few months.
--Hexbus Video interface. This allows the CC40 and TI74 to display text
in 40 columns on a composite color monitor. One of my correspondants has seen
Michael's working prototype. It is better than the TI original in that it
will display in 16 colors, not just in black and white.
Another hobbyist, Lee Bendick, has cloned the CC40 EA cartridge and is
making this cartridge available to interested CC40 owners. This allows users
to program the CC40 in assembly language, storing assembly routines in battery
backed RAM cartridges or in the RAM of the CC40. I know of only 4 TI original
CC40 EA cartridges. I own one of Lee's cloned EA cartridges and it works as
described in my two massive CC40 assembly language manuals. You need either
a 5.25 hexbus disk drive or a wafertape drive to make the EA cartridge work.
Anyone interested in any of these CC40/Hexbus peripherals can write me at
P.O. Box 647, Venedocia OH 45894. I will put you in touch with Michael Becker
or Lee Bendick.
============================================================================
C4ICS012
Content-Type: TEXT/plain; SizeOnDisk=969; name="HEXBUS#.TXT"; CHARSET=US-ASCII
Content-Description: HEXBUS#.TXT
APRIL 1992
HEXBUS/DOCK BUS PERIPHERAL DEVICE NUMBERS
NUMBER | PERIPHERAL
-------------------------------------------------------------
1-8 |*HX1000 Wafertape Digital Tape Drive
1 | CI-7 Cassette Interface (Dock Bus)
8 | Quickdisk Drive, by Mechatronic
10-11 | HX1000 Printer Plotter
12 | PC324 Thermal Printer (Dock Bus)
14 | PC Interface -to PC parallel printer (Dock Bus)
16-17 | HX1010 Printer 80
20-23 | HX3000 RS232C Interface
40 |*HX1100 Video Interface
45 | PC Interface -to PC screen (Dock Bus)
50-53 | HX3000 Centronics Parallel Interface
60-67 | Computer in slave mode
70 | HexBus Modem
100-104 |*5102 HexBus drive controller, up to 4 drives.
100 | PC Interface -Program on PC disk (Dock Bus)
101 | PC Interface -ASCII text file on PC disk (D Bus)
* denotes products never officially released
=============================================================================
C4ICS013
--cgood:848799722:880673398:740247587:1912078336
Content-Type: TEXT/plain; SizeOnDisk=5477; name="HEXBUS.TXT"; CHARSET=US-ASCII
Content-Description: HEXBUS.TXT
JANUARY 1992
THE HEX-BUS CONNECTION:
By Dan H. Eicher
One facet of the whole TI saga that has been largely overlooked is TI's
introduction of a new bus standard in the last days of their involvement within
the mass consumer market. That new bus was called the Hex-Bus.
The Hex-Bus was planned as a standard bus throughout the TI family of low end
computers. The computers that had built in Hex-Bus interfaces were: 99/8, 99/2,
and the CC-40 (CC stands for Compact Computer), and the 99/4(a) was to have an
interface cable. For one hundred dollars you received a box the plugged into
the i/o port of your comsole and at the other end had a Hex-Bus plug.
What was so grand about this new scheme was the peripherals themselves, some of
the peripherals that where actually produced where: disk drives, wafer tape
drives, rs-232 interfaces, printer plotters, printers, and video interfaces.
These peripherals were VERY compact, all of them fit on a 4X4" printed circuit
board. All Hex-Bus units could be used on ANY computer that had a hex bus port!
That means that you could use your rs-232 on your 99/8 and when you went on a
camping trip you just unpluged it and took it along with your CC-40.
Several years after TI went out of the home computer market, they produced the
TI-74 Basic Calc (which was much like a trimmed down CC-40) & the TI-95 Procalc
(this is a much improved model over TI's original 95 programmable line ). Each
of these new computers had a new I/O port on the back that looked much
different then the old Hex-Bus port. TI slipped and they put out a technical
reference manual for the TI-74 (I say slipped because we all know how TI likes
to give out technical information....not at all). I believe you can still order
one of these TI-74 technical reference manuals from TI Cares.
When people got these technical manuals and started to look them over they
where surprised to find out the Hex-Bus was back, only in a different package.
In fact all that needs to be done to hook up a Hex-bus peripheral to one of
these new computers is change the pin configuration (nothing has to be added,
just the wires need to be moved around and put in a new package). The only
thing new to this new bus (TI calls it, a Dock-bus port), is a power line has
been added so a peripheral unit can provide power to either the 74 or 95. This
was done because TI did NOT set up a power adapter jack in either of these two
computers, so it was battery powered only. If you bought their printer and
pluged it into a power supply, the power supply would provide power to both the
printer and the host computer. This will not work with the older Hex-bus
peripherals, nor is the CC-40 designed to accept power from one of the new
Dock-bus peripherals.
One of the major draw backs to the CC-40 was that there was not a built in
cassette tape interface, and Hex-Bus disk drives and Wafer tape units are all
but non-existant, this leaves the user without any means to save programs on a
permenant media. The 74 & 95 also did not have cassetter interfaces built in so
TI sold a unit that plugged into the Dock-Bus that allowed you to save programs
to cassette.
At first many CC-40 owners where overjoyed, thinking they at last had found a
solution to their mass storage delima, but it was not to be. TI did not build
the code into either the CC-40 or the cassette interface that would allow the
CC-40 to save to tape using this device. Although TI did build a version of the
CC-40 called the CC-40+ that had a built in cassette interface, these
unfortuneatly were only built for use "in-house".
I would like to note that even today, many CC-40 and TI-74 see service daily.
TI wrote several custom programming packages for these two machines.
Different government and private agencys send their employees into the
field armed with a CC-40 or TI-74 and custom software, tailored to the type of
calculations they do. I have even heard of a automated car wash in Germany
that runs off of a CC-40.
I have included a copy of the shape and pin ins/outs of the Hex-Bus and
Dock-bus for any who may be interested.
.NF
.NA
Hex-Bus:
___ Pin Purpose
____| |___ 1 D0 Data-LSB
|4 3 2 1| 2 D1 Data
|8 7 6 5| 7 D2 Data
---------- 8 D3 Data-MSB
5 HSK - Hand Shake
3 BAV - Bus available
4 GND
6 Protective GND
Dock-Bus
_
_________| |__________
|1 2 3 4 5 6 7 8 9 10| Pin Purpose
---------------------- 1 System Power distribution out
2 System Power distribution in
3 DO Data-LSB
4 D1 Data
5 D2 Data
6 D3 Data-MSB
7 HSK - Hand Shake
8 BAV - Bus available
9 System Reset
10 GND
For you experimenters here is the color codeing
of the HexBus Port:
Pin Color Pin Color
1 Grey 5 Brown
2 Yellow 6 Green
3 Red 7 Black
4 Orange 8 Blue
=============================================================================
C4ICS014
--cgood:848799722:880673398:740247587:1912078336
Content-Type: TEXT/plain; SizeOnDisk=5222; name="MEMOBUG.TXT"; CHARSET=US-ASCII
Content-Description: MEMOBUG.TXT
A FATAL BUG IN THE CC40
MEMO PROCESSOR SOFTWARE CARTRIDGE
by Charles Good
Lima Ohio User Group
When using TI's word processing MEMO PROCESSOR cartridge, you are
supposed to be able to enter text and then completely power down the
CC40. Later, when you turn on the CC40 and start Memo Processor your
text should still be there waiting for you, preserved in the CC40's
battery backed RAM. My experience has been that this works most of
the time. However, every now and then my CC40 displays "Ready for
new document" when I activate Memo Processor even though there should
already be a document in memory. The document I left in memory when
I last powered down my CC40 is totally lost when this happens. This
loss of document occurs only occasionally, but when it happens I am
VERY UPSET, because I may have lost several thousand characters of
text before I can get my CC40 home to transfer my document via my
hexbus RS232 to my 99/4A or to a PC. This is why, in my CC40
Micropendium article, I characterized the CC40 Basic word processing
Palmer Hanson and I wrote as "more stable in memory" than Memo
Processor. This program, which I am using to write this article,
NEVER loses its data when the computer is turned off.
For many years I have wondered whether this Memo Processor problem
was a random phenomynon or was due to some basic problem in the Memo
Processor software. The problem occures infrequently enough that I
was unable to detect a pattern. Maybe the contacts on my Memo
Procesor cartridge and/or the cartridge port on my CC40 were dirty.
Maybe I didn't use the correct sequence of keypresses to completely
exit Memo Processor and power down the CC40 (there are several ways
to do this). Maybe Memo Processor does not like my 18K CC40 and will
only work reliably with a 6K CC40. I asked other CC40 owners if they
experienced this problem. Some, including Funnelweb's Tony McGovern,
replied with a definate "YES!", but others said they have not
experienced the problem.
I am now convinced that there is a bug in Memo Processor that causes
data loss on powerdown under certain circumstances. I can verify the
loss of document problem in a predictable way. The problem is not
related to dirty cartridge contacts, the size of CC40 RAM, or the
keysequence used to turn off the computer. I have verified the bug
using two different Memo Processor cartridges using both my 18K and
6K CC40. The results of my research indicate that, when using Memo
Processor, each time the CC40 is powered down by the user or by
automatic powerdown there is approximately 1 chance in 16 that the in
memory document will be lost. And there is almost nothing you can do
to prevent this from happening.
The solution to this puzzle ocurred to me recently after I wrote a
6600+ character long document using Memo Processor, saved the text to
Quickdisk, and turned off my computer. When I later turned my CC40
back on the document was gone! I reloaded the document from my
quickdisk drive, turned my CC40 off and then back on, and the
document was GONE AGAIN!. I now had on disk a document that would
ALWAYS be lost to Memo Processor when my CC40 was power cycled. This
proved that the loss of document problem is not random. It can be
predictably repeated. I soon discovered that if I loaded my
disappearable document from disk and either added a few characters to
the document, or deleted a few characters, the document would remain
in memory. It is the length of the text document in memory that
determines whether it will be lost or not when the CC40 is turned
off, according to the following pattern.
If you enter 20 groups of 10 characters each into Memo Processor with
a space between each group, this will equal 219 characters and will
remain in memory when powr is cycled. If you add a space and another
10 character group, for a total of 230 characters, the document will
be lost when power is cycled off and on. Any document length between
1 and 229 characters will not be lost. Any document between 230 and
245 characters in length will be lost upon power cycling. Then the
pattern repeats itself. Text 246-475 characters long will not be but
text 476-492 characters long is lost. The pattern seems to repeat
more or less indefinately. For each group of 245 characters, if the
document length is within the last 16 of these 245 characters the
document will not remain in memory when the CC40 is turned off and
on. 16/245 = 0.065 or 6.5% or about 1 in 16, the chances of losing a
Memo Processor document each time the computer is power cycled.
Unless you know the exact length of your document, which is not easy,
there is no way to avoid the problem. In my opinion this bug makes
Memo Processor almost useless. Those CC40 owners who told me they
havn't had troubles with Memo Processor probably havn't used it very
often. Or perhaps they are just unusually lucky.
=============================================================================
C4ICS015
--cgood:848799722:880673398:740247587:1912078336
Content-Type: TEXT/plain; SizeOnDisk=7178; name="MEMOPROC.TXT"; CHARSET=US-ASCII
Content-Description: MEMOPROC.TXT
October 1990
WORD PROCESSING WITH THE CC40 USING "MEMO PROCESSOR"
by Charles Good
Lima Ohio User Group
For me, the most common use of my CC40 is as a laptop word processor.
Once created, text in the battery backed RAM of my CC40 can be printed
using the HexBus PRINTER 80 or dumped directly into TI Writer on my
99/4A using the HexBus RS232. The software that lets me do all this
is the MEMO PROCESSOr solid state software cartridge for the CC40.
MEMO PROCESSOr is the official TI word processor/terminal emulator for
the CC40. It does a good job dealing with the main limitation of the
CC40 for text work, the one line 31 character display. Yes, you can
scroll left/right across an 80 column line with the CC40, but you
still see only 31 characters at a time. MEMO PROCESSOR comes with a
handy keyboard overlay and a very well written user's guide. All you
do is press the CC40 "ON" button, press FCTN/0 to produce RUN "MP" on
the CC40's display, press ENTER, and you are now in word processing.
Just begin typing! When you exit MEMO PROCESSOR you are returned to
BASIC. BEWARE! Performing ANY calculations or BASIC programming will
disrupt the text you have stored in the CC40's battery backed RAM. It
is a good idea to save text to disk or wafertape, or dump to TI-Writer
in the 99/4A as soon as possible.
MEMO PROCESSOR resembles the TI Writer editor in its capabilities.
There is no "formatter" and formatting dot commands are not recognized
as anything special by MEMO PROCESSOR or any of the HexBus printers.
All the standard word processing functions are available including
adjustable tabs, merging documents, find/replace string, and full
paragraph reformat when inserting and deleting. With a standard 6K
RAM CC40 you can store about one 66 line 80 column single spaced page
of text before you run out of memory with MEMO PROCESSOR. If you have
internally upgraded your CC40 to 18K (L.L. Conner Enterprise will do
this for $25), you can store about 5 single spaced pages of text.
You can set the right margin for anything up to 80 columns. The left
margin is created at the time text is printed. The CC40 display
indicates the end of a print line (based on the right margin you have
selected) and the end of paragraphs. When initially creating text it
is best to set the right margin at column 28. This insures that no
left/right scrolling is needed to read the text. Later the text can
be reformatted to any margins you desire. Reformatting is easily done
with just three keypress. The entire document is reformatted all at
once. The kind of paragraph by paragraph reformatting required in TI
Writer's editor is neither necessary nor possible with MEMO PROCESSOR.
Leading spaces (such as at the beginning of a paragraph) are preserved
in reformatting. What you cannot achieve with reformatting, or any
other way with MEMO PROCESSOR, is right justification. The lack of
right justification is in my opinion the greatest deficiency in the
word processing performance of MEMO PROCESSOR.
Saving text to a QUICKDISK or WAFERTAPE drive (I have such a device)
is easy. One keypress followed by entering the save file name does
the trick. MEMO PROCESSOR warns you if your file name already exits
on the disk or wafertape so you won't accidently overwrite something
important. This is a nice touch.
When viewing text you can move to the beginning or end of the text or
GO TO any location within the text (any specified row and column) with
just one or two keypresses. You can also automatically scan the text
in order to read the whole document. The computer automatically moves
successive blocks of text onto the screen in such a text scan, and the
length of time each block of text is displayed can be adjusted by the
reader.
When it is time to print text to a HexBus printer (or the HexBus
RS232), you can alter any of these options under software control:
page length, number of print lines per page, and left margin. You can
also specify the printer device number, compressed or normal size
print (Compressed is an option with the HexBus printer plotter; the
HexBus Printer 80 supports only normal sized text.), spacing (number
of line feeds after each carriage return) and pause between pages (if
you are using single sheets of paper). If you are printing to a
regular (non HexBus) serial or parallel printer via the HexBus
RS232/PIO interface peripheral, you can control strobe level, baud
rate, parity, nulls after carriage return, and number of data and stop
bits.
The MEMO PROCESSOR is also a terminal emulator designed to send and
receive data from other computers via the HexBus RS232 and the HexBus
modem. You can use any modem but you must have a HexBus RS232 to do
this. When used in this way, MEMO PROCESSOR controls the following:
baud rate (110 or 300), data bits, transmit parity, stop bits, check
parity on receive, and duplex. The major limitation to MEMO PROCESSOR
as a terminal emulator is the top speed of 300 baud for sending text.
Most BBS's and information networks can work at much higher speeds,
and some BBS's don't accept speeds as low as 300 baud. However, you
must remember that MEMO PROCESSOR was designed to work with the HexBus
modem which has a maximum baud rate of 300, and that both products
were made in 1983/84 when 300 baud was much more common than the
higher baud rates used today.
When receiving text from a remote source or when text you are sending
is duplexed back onto the CC40's display, the text scrolls very
rapidly across the display at a rate that makes it difficult to read.
When receiving text, you really can't read the text until later when
you scan the contents of the CC40's text buffer at your own pace.
Rather than PRINT DOC to my RS232 from the word processing part of
MEMO PROCESSOR, I use SEND DOC from the terminal emulator part of MEMO
PROCESSO. I do this to move text directly to my HexBus RS232 and then
across a cable to my 99/4A's RS232 where the text loads directly into
TI Writer The reason I choose SEND DOC instead of PRINT DOC is that
the defaults of my TI RS232 exactly match the defaults of SEND DOC. I
don't have to change any of the defaults on either computer to port
text this way directly into TI Writer. As a matter of fact, when I
get through typing this paragraph as I sit on my front porch with my
CC40 in my lap pecking away on the keyboard with one finger of each
hand, I'm going to go inside and dump this article to my TI for
processing with Funnelweb. BYE!
==============================================================================
C4ICS0016
--cgood:848799722:880673398:740247587:1912078336
Content-Type: TEXT/plain; SizeOnDisk=27198; name="MICROPEN.TXT"; CHARSET=US-ASCII
Content-Description: MICROPEN.TXT
PUBLISHED IN MICROPENDIUM DECEMBER 1994
TI`S CC40 COMPUTER SYSTEM
by Charles Good
The CC40 (which stands for "Compact Computer 40") was in early 1983
TI`s first ever entry into the portable computer market. It is in
many respects a little brother to the 99/4A, so much so that
Funnelweb's senior author Tony McGovern calls the CC40 "Little Tex".
This article, based on my own experience using the CC40 system,
describes the CC40 computer and its tiny peripherals. Some of these
are very rare collectors items. The article also lists current
sources of supply where you can purchase the CC40, its software, and
important peripherals.
The CC40 computer is battery powered, very small, (smaller than most
modern laptops), and it was offered with a host of small peripherals,
most of which are also battery powered. Without the need to plug into
an external power source, a CC40 system allows truely portable
computing and printing anywhere. This little orphan is of interest to
owners of 99/4A computers for two reasons: 1- The syntax of its built
CC40 BASIC language is almost identical to the 99/4A's TI Extended
Basic. 2-TI intended the 99/2, the 99/8, the 99/4A, the CC40, and all
its tiny peripherals to be physically cabled to each other and to talk
to each other using a propriatary bus connector called a "hexbus" that
is found on all these machines except the 99/4A. To make hexbus
devices work with the 99/4A, TI intended to sell a "hexbus interface",
a peripheral that had a hexbus connector and that attached to the
right side of a 99/4A console. The hexbus interface is pictured on
the boxes that contained beige 99/4A consoles but it was never
officially released. I own a hexbus interface and use it regularly as
part of the 99/4A system on a little table next to my bed. The
interface when combined with tiny hexbus peripherals permits an
expanded 99/4A system to occupy very little surface area.
Although the CC40 is no longer manufactured by TI, the computer,
cartridge based software, and some of its tiny peripherals are still
available from dealers such as those listed at the end of this
article. When it was introduced the CC40 had a list price of $250.
Sales were not good in 1983 and 1984 because no mass storage device
was made available by TI. The promised cheap Wafertape Digital Tape
Drive turned out to be exactly that, cheap. It was unreliable and
thus never released, and at that time TI had no other inexpensive CC40
compatible mass storage device to offer the public. In 1984
production of this fantastic little computer ceased. In May 1990 I
paid $95 my new CC40. New CC40s are available now for $49 from Jim
Lesher, and used computers are available from several of the dealers
listed below. For an extra $20-25 you can purchase an expanded memory
CC40 or have dealer installation (by L.L. Conner Enterprise) of the
necessary chips to bring the CC40`s internal RAM to the maximum 18K,
up from the 6K RAM found in the typical CC40. L.L. Conner will also
sell you the RAM chips if you want to do the job yourself. This extra
memory increases the CC40`s internal buffer capacity to around five
double spaced pages of word processing text.
The CC40 measures about 9x6x1 inches, the size of a small textbook.
It uses a 2.5MHz TMS70C20 8-bit processor and has 34K of ROM and 6K
(expandable to 18K internally) CMOS RAM. There is a "solid state
cartridge" port, and the internal RAM can be further expanded with 8K
or 16K memory expansion cartidges. Software cartridges such as the
Memo Processor word processing cartridge can also be inserted into the
cartridge port. The ROM includes a very powerful and vary familiar
looking BASIC. Both upper and true lower case letters (not just small
upper case letters) are provided. Error and system messages can be
displayed in either English or German.
I have no idea what the "40" in CC40 refers to, certainly not the
CC40`s display. The LCD display shows 31 characters of a single 80
character line. You need to move the display left/right to view the
entire line. Four dedicated cursor keys allow you to scroll up/down
to view other lines or left/right within a line of text or program
code. The LCD display includes special indicators for such things as
low battery, the status of the shift function and control keys, upper
case lock, and special math functions. Some LCD display indicators
are user programmable. A control on the left side of the CC40
regulates the contrast (intensity) of the LCD display.
The CC40`s keyboard consists of chicklet keys. Alpha numeric keys are
arranged in a 44 key qwerty typewriter layout with number keys on the
top row, looking very similar to the 99/4A key arrangement. No, you
can`t easily touch type. The alpha keys are just too close together.
One finger pecking is the usual method of laptop data entry while
holding the CC40 steady with your other hand. It is not ever
necessary to press two keys at once. For those features such as one
time capital letters that require the use of the SPACE, FN (function),
or CTL (control) keys either press both keys at once or you can press
the special key first and see an indicator on the LCD display turn on.
You then press the second key (for instance SHIFT and then D to
display an upper case "D", or FN and then ~ for insert), and the
special LCD display indicator turns off. A separate numeric keypad is
to the right of the qwerty alphanumeric keys. The number keys on the
top row of the qwerty layout are duplicated in this keypad. Special
keys are included for cursor movement (4 dedicted keys), BREAK, RUN,
ON, OFF, and reset.
A very important feature of the CC40 is that any BASIC program or any
word processing document entered into the CC40`s RAM stays there even
after the computer is turned off. Four alkaline AA cells are said to
provide enough power for 200 hours of operation and my experience
shows that these batteries will last many months of "computer off"
time. Compare this to the 2-4 hours most "modern" laptops will run
using their batteries. The CC40 and all its small battery powered
peripherals can also be powered with an AC adapter.
The BASIC that comes as standard equipment on the CC40 closely
resembles T.I. Extended Basic, but lacks most of the 99/4A's graphic,
color, and sound features. There are no sprites and only one kind of
programmable BEEP. Multi line statements up to 80 characters in
length are supported, as are user defined subprograms with variables
independent of the main program. Seven characters (ASCII 0-6) can be
user defined with CALL CHAR on a 5x8 pixel grid. CALL`s relating to
assembly code include POKE, LOAD (an assembly subprogram from an
external device), PEEK, and EXEC (starts an assembly language
program). Two dimensional arrays are supported.
Typing BASIC code into the CC40 is made easy with automatic line
numbers (NUM) as in TI extended basic. DELETE will delete one line
number or a specified group of line numbers from the middle of a BASIC
program. You can, if you want, type the words for BASIC functions and
commands with the alpha keys one letter at a time. However many BASIC
commands and functions can also be displayed on screen by pressing
only 1 or 2 keys. A plastic keyboard overlay that comes with the CC40
shows these special keypresses, most of which involve pressing the CTL
or FN key followed by another key.
A particularly powerful feature you can access from command mode or
from a running BASIC program is CALL DEBUG, which brings up a built in
assembly language monitor and memory manager. This is designed to be
used with the CC40`s Editor Assembler Module (never officially
released), but can also be used by itself. When in the DEBUG monitor
you can display, modify, or copy any memory in hex. You can also
change the microprocessor`s program counter, stack pointer, and status
register. You can set break points, single step through assembly
code, start execution at a given address, and control paging in and
out of system ROM and cartridge ROM. DEBUG is very powerful, and it
is built into the CC40 for use whenever needed.
Up to 9 user defined hot keys can be set up to instantly display a
preset string of up to 80 characters. Hot keys remain in battery
backed memory even after the CC40 is turned off. FN + 1-9 are the
potential hot keys. These can, for example, be set up for commonly
entered BASIC code, number sequences used in math calculations, or
short text memos such as names and addresses.
No little calculator can do a better job than the CC40 for the display
of chain number calculations. I routinely use the CC40 to balance my
checkbook and to calculate student grades from a series of numerical
student exam scores. You can type in up to 80 characters of
mathematical numbers and symbols (such as 112.56+56.35-45-54.95+12)
and then scroll left/right to make sure that all your numbers are
correctly entered before pressing <enter> to display the answer. Then
pressing "play back" will redisplay the numbers of the chain
calculation that gave you that answer. If your chain is greater than
80 characters, you can enter part of the chain and press <enter> for
an intermediate answer. Then, starting with the intermediate answer,
enter the rest of the numbers of the chain and press <enter> to get
the complete mathematical answer to the entire chain calculation.
You can also use the CC40 as a scientific calculator by typing in your
calculations directly rather than writing a BASIC program to do the
calculations. Calculation accuracy is 13 significant figures, with 10
significant figures usually showing on(the CC40`s display. Scientific
notation is supported, allowing the CC40 to deal with numbers as small
as +/-1E-128 or as large as +/-9.9999999999999E+127. PI, SQR, any
other power or root, log (base 10, and base E), sine, cosine, tangent,
arcsine, arccosine, and arctangent are all supported with special
keypresses. Angles are calculated in either degrees, radians, or
grads. A special indicator on the LCD display (DEG, RAD, or GRAD)
shows which kind of angle is in effect. RAD is the powerup default.
You could easily spend $30 for a hand held scientific calculator, and
you would still not have a 31 column display or a scrolling 80 column
data field. For a few more dollars you can have a CC40, which can
function as a scientific calculator AND as a real programmable
computer.
WORD PROCESSING
For me the most practical use of the CC40 is as a portable word
processor. When used as a word processing system, the following CC40
hex bus peripherals are important:
1- Memo Processor, a CC40 software cartridge; $20 new with an
extensive instruction book. Actually I prefer to use my own BASIC
CC40 word processing program, which does not require a cartridge and
which is more stable in the CC40's memory. Send me $1 and I will send
you a 99/4A disk that contains the BASIC listing of my CC40 word
processing program plus other type in CC40 software.
2- The Hexbus RS232; about $30-75 depending on whether you purchase
the parallel printer cable option. This is a VERY important
peripheral. The parallel cable option lets you print to a regular
parallel printer from the CC40. Even without the parallel cable
option the RS232 lets you send word processing text or other data to
another computer. To send word procesing text from a CC40 to a 99/4A
use a hexbus cable to connect the CC40 to a hexbus RS232 peripheral
and run a serial cable from it to the RS232 port of your 99/4A. (L.L.
Conner can custom make the needed serial cable for you.) Cabled this
way you can send text directly from the CC40 into TI Writer or the
Funnelweb editor without using a terminal emulator program or null
modem on the 99/4A. Here's how. From TI Writer type "LF" (load file)
and specify "RS232.CR" as the file name. Then using either Memo
Processor or my own CC40 BASIC word processing program tell the CC40
to SEND its text. Text will flow out of the CC40 and into the TI
Writer edit buffer. When the computer lights stop flashing press
FCTN/4 on the 99/4A and your text originally entered into the CC40
will be displayed on the 99/4A's monitor ready for further editing and
saving to a TI disk. The Hexbus RS232 is the only hexbus peripheral
that is not battery powered. It needs an AC adapter.
3- The hexbus PRINTER 80; around $100 new or used. This small (about
13x6x2 inches) 80 column thermal dot matrix printer is powered by 4
"D" batteries or an ac adapter. It uses small ribbon cartidges to
print on ordinary 8.5 x 11 inch typing paper or you can print on rolls
of 8.5 inch wide FAX paper without the ribbon cartridge.
Thus for an investment of $150 ($50 for the CC40 and $100 for the
Printer 80) you can have a totally portable battery powered word
processing system using my BASIC word processing software. For an
extra $70 ($50 for a new hexbus RS232 from Jim Lesher and $20 for Memo
Processor) you can have everything you need for a complete word
processing package. I am composing this article on my CC40. This
paragraph is being written while sitting on a bench in the quadrangle
of the O.S.U. Lima Campus enjoying the sun. Other paragraphs will be
written later today sitting on my fromt porch at home and laying in my
bed watching the evening news on TV. Then I will dump the text, via
my hexbus RS232, to the Funnelweb (TI Writer) editor on my 99/4A and
save it from there to a 99/4A disk that I will send to Micropendium.
This is truely portable word processing! A CC40 system is absolutely
the cheapest word processing system it is possible to purchase
anywhere. Compare these prices to the cheapest "modern" laptop
computer advertised in Computer Shopper or the nonbattery powered
dedicated word processor/printers with little flip up screens
(Brother, Smith/Corona, and similar brands) sold in retail stores,
OTHER PERIPHERALS
In addition to the peripherals described above the following two
hexbus peripherals are sometimes still available new or used from
dealers. All hexbus peripherals should be purchased with a hexbus
cable. Make sure you get one with each peripheral you purchase. You
daisy chain the needed peripherals together with such cables and
connect the first peripheral in the chain to the CC40. Most hexbus
peripherals measure about 6x4.5x1.5 inches and are designed to neatly
stack on top of each other.
---Hexbus Printer Plotter. This cute little printer uses adding
machine paper to print on. There are four little ball point pens,
each of a different color. Replacement pens can still be purchased at
Radio Shack stores. You can program the X-Y axis movement of each pen
as you print multicolored graphs, and drawings. Several different
text sizes from teeny tiny to about 1 inch tall are available. Text
can be printed in any direction (vertically facing either left or
right, horizontally, and even upside down). Although this printer
does have some unique features, it is not really useful in printing
documents. Also, it has some reliability problems. There is an
internal plastic gear that has a history of breaking (Cecure has a
metal replacement gear), and its alkaline battery is soldered in and
cannot easily be replaced. If the battery fails to hold a charge you
are out of luck even if you use the optional AC adapter.
---Hexbus Modem. This is a 300 baud direct connect modem with rear
connectors for two hexbus cables and two RJ11 phone cables. I am told
that electronically it has properities that are identical to the
99/4A's acoustic "telephone coupler" modem. It works well, but today
would probably be considered little more than a toy. It has been a
long time since computer data crawled along phone lines at a speed of
only 300 baud. Many information services and BBS systems do not
support such a slow speed any more.
AVAILABLE SOFTWARE:
The following official TI software cartridges for the CC40 are
available new for $20 each from Cecure Electronics and sometimes less
from other dealers listed below. Each cartridge comes with a well
written user guide. Learn Pascal. Memo Processor. Finance.
Elementary Engineering. Statistics. Math. Games.
I have about 25 CC40 BASIC programs, including the word processing
program, which I will be glad to send you. Some of these programs
take advantage of the special features of various hexbus peripherals.
Either send me a quickdisk (see below) and a paid return mailer or
send me $1. Those sending money will get a 99/4A SSSD disk by return
mail which contains text file listings of my CC40 BASIC software
library.
THE MASS STORAGE PROBLEM
Lack of mass storage options is why the CC40 failed commercially in
1984/84 and this is still a big problem for CC40 owners today. Since
I use the CC40 mostly for word processing, I can usually get along
without mass storage. Text I enter into my BASIC word processing
program for the CC40 (or into Memo Processor) is conserved for weeks
or months in the battery backed RAM of the computer until I can dump
the text to my 99/4A system via the hexbus RS232. The following mass
storage options are possible:
---8K Memory Expansion. About $30 used. Functionally this resembles
the 99/4A's Mini Memory cartridge. The 8K CC40 cartridge is battery
backed and can be used either for program storage or as memory
expansion, but not both. These 8K battery backed cartridges are not
very common anymore, but some are still available from dealers listed
below. You can purchase a bunch of these and store one BASIC program
in each cartridge. Program storage only works if you have a 6K CC40.
If you are using an enhanced 18K CC40, the 8K cartridge can only be
used for memory expansion.
Combined use of the battery backed cartridge for program loading and
the non battery backed 16K cartridge for RAM expansion works very well
with my Basic word processing program. 16K cartridges are still
commonly available for about $30-40 from dealers. First I plug in an
8K cartridge that contains my word processing program and transfer
that program to to the RAM of my 6K CC40. I then unplug the 8K
cartridge and plug in the 16K RAM expansion cartridge. Executing a
CALL ADDMEM adds the 16K to the 6K already in the CC40 giving me 18K
of RAM (I don't know why its not 22K, but it isn't), enough to store
text (about 5 double spaced pages) using my word processing program.
You can't do this using the Memo Processor cartridge, which must
remain inserted in the CC40 while in use. This is one of the reasons
I prefer my Basic word processing program.
---TI's PC Interface. $60 new, sold directly by TI. This small
peripheral, known as the PCIF, plugs into a PC parallel or LPT port
and allows BASIC programs and data files in a CC40 to be stored on or
loaded from a floppy disk or the hard drive of an IBM compatible
computer. The IBM computer then becomes your mass storage. Sounds
great doesn't it! Unfortunately it is a bit tricky to hook the PCIF to
the CC40. The PCIF was made for use with the TI74, which is a more
modern and somewhat smaller version of the CC40. Although the PCIF is
electrically compatible with the hexbus, the 10 pin holes arranged in
one straight line on the PCIF's female connector will not directly
plug into a hexbus or a hexbus cable. The hexbus has 8 pins arranged
in two rows of 4. I cut common paper clips to make short wires that
stick snugly into the holes in the end of a female hexbus cable and
the corresponding holes in the female connector of the PCIF, filling 8
of the 10 PCIF connector holes. The remaining two PCIF connector
holes are for power, 6 volts in and out. The CC40 has no way of
delivering this needed power to the PCIF. You have to modify a Radio
Shack black cube ac-to-6vDC power adapter so you can plug the adapter
into the last two pins of the PCIF. Connecting my CC40 and power
adapter as described here to the the PCIF allows me to store CC40
software on IBM disks.
---Mechatronic QuickDisk peripheral. This small disk drive is the
only hexbus peripheral I have ever heard of that is not made by TI.
It was made a German company specifically for the CC40. I find it to
be very fast, reliable, and easy to use for data file and program mass
storage. The peripheral is fairly small (7x5.5x3 inches), not battery
powered, and uses 2.8 inch disks (not the common 3.5 inch disk size)
to store up to 64K on each side of a flippy disk. In 1990 I paid $110
for a new one. The QuickDisk drive is now out of production and there
apparently are no new QuickDisk drives gathering dust on dealer's
shelves. If you can find a working used QuickDisk drive then buy it!
Used QuickDisk drives are hard to find.
---Wafertape Digital Tape Drive. This was going to be TI's cheap
portable mass storage device. It ran on batteries or an AC adapter
and used a tiny continuous loop tape cartridge about the size of a
modern microcassette audio tape. Although data was stored serially,
it had many of the characteristics of a random access device. For
example, programs and data files can be loaded by file name from a
wafertape whcih contains several different files. I own one of these
rare devices (serial number 0000007) and several official TI wafer
cartridges that have a TI logo on the label. My wafertape drive is
not very reliable. Many times I have saved and verified data files or
basic programs to wafertape only to find that later I can't load this
information back into my CC40. Reliability problems are probably why
TI never released this peripheral to the public. If you can find one
to buy, Jim Lesher will sell you wafertape cartridges.
---Hexbus Floppy disk drive controller. This also was never released
by TI, probably because the CC40 and its peripherals were marketed
as an inexpensive alternative to other 1983 computer systems, and the
hexbus floppy drive was not inexpensive. This is the rarest and
probably the most useful of the hexbus peripherals. The controller
worked with IBM compatible 360K drives and 5.25 inch disks, formatting
DSDD at 16 256K sectors per track just like TI's never released DSDD
disk controller for the 99/4A. I know of four working hexbus floppy
controllers in the whole world. Its too bad one of them isn't mine,
yet!
SOURCES OF SUPPLY:
---CECURE Electronics. P.O. Box 222, Muskego WI 53150. Phone
800-959-9640. This is the official TI service and exchange center for
the CC40 and its peripherals. They don't sell the computer or
peripherals but they do repair them on a flat fee exchange basis.
They sell the following CC40 cartridges new: 16K expansion RAM ($40),
Memo Processor and other software cartridges listed above ($20 each).
They also have new "user guides" for those who have the computer but
no book and a "Learn Basic" book published by McGraw Hill specifically
for the CC40.
---Jim Lesher, 722 Huntley, Dallas TX 75214. Phone 214-821-9274
A nice selection of new and used CC40s ($50 for a new 6K CC40), HexBus
peripherals, and rare documentation. Write or call for a current
product list. He is the only source I know of for 8K battery backed
RAM cartridges. Jim also sells software cartridges and 16K expansion
RAM cartridges and has the two books mentioned above.
---L.L. Conner Enterprise, 1521 Ferry St. Lafayette Indiana 47904.
Phone voice 317-742-8146 or fax 317-423-4879. A source of used and
(occationally ) new CC40 computers, Hex Bus peripherals, and cartridge
software. Phone almost anytime for a list of what is currently in
stock. Larry Conner will upgrade CC40s from 6K to 18K of internal RAM
or sell you the chips to do it yourself. He will also make the serial
cable to hook a hexbus RS232 to the 99/4A RS232.
---Texas Instruments. Phone 800-TI-CARES and have your credit card
ready to order the PCIF, which is considered by TI-CARES
representatives to be a TI74 or TI95 product. TI is the only source I
know for this peripheral. It is part number 1065751-0001 and costs
$60 plus shipping and state sales tax. You may have to tell the
TI-CARES phone representative to type in "TI74" on her terminal to
find the sales listing for the PCIF. TI also sells an ac adapter you
can use instead of batteries to power the CC40 and some of its
peripherals. This is called the AC9201, part number 1055601-8900, and
costs $18.95. TI now refers all enquiries about sales and repair of
CC40 products and hexbus peripherals to Cecure Electronics.
---Charles Good, P.O. Box 647, Venedocia OH 55894. Phone
419-667-3131. That's me, the author of this article. Send me $1 and
I will send you what I have in the way of CC40 BASIC software as
described earlier in the article.
=============================================================================
C4ICS017
Content-Type: TEXT/plain; SizeOnDisk=5903; name="MODEM.TXT"; CHARSET=US-ASCII
Content-Description: MODEM.TXT
ORIGINALLY PUBLISHED IN LIMA NEWSLETTER MAY 1995
THE PORTABLE HEXBUS MODEM
by Charles Good
Lima Ohio User Group
Those familiar with my TI computer writings already know that I
am fond of the CC40 computer for portable word processing. It is
small and easy to carry around, and its batteries last for hundreds
of hours of "computer on" time. I have written about how I can dump
text from my CC40 directly to the Funnelweb editor by cabling the
CC40 and 99/4A together. Well, there is another way to transfer word
processing text between the CC40 and a 99/4A. You can do it remotely
and totally portably using the hexbus modem.
The hexbus modem is lightweight and small 300 baud battery
powered device that follows the Bell 103 protocol and can connect to
any other Bell 103 compatible modem (most are). It is about 1/3 the
size of a CC40. Power comes from four AA batteries or an optional AC
adapter. When you buy the modem you also get a user guide, an 8 inch
hexbus cable, and an eight foot telephone cable with RJ11 plugs at
both ends. There is a power on/off switch on the front and another
on/off switch on the back to connect the modem to the telephone line
once a phone has been dialed and you hear the other computer's
carrier tone. Also on the back are two RJ11 receptacles, two hexbus
jacks and an external power input jack.
To use the hexbus modem you connect directly to the CC40 with the
hexbus cable. You put the phone line in one of the modem's RJ11
jacks and use the 8 foot phone cable to link the modem to an actual
telephone that you use to dial the phone number of the remote
computer. When this number is answered you move the switch on the
back of the hexbus modem to the "on" position.
TI's Memo Processor cartridge is designed to be used with the
modem. With it you can create text documents and uppload them to a
remote computer or you can capture some text and save this text as a
word processong document. You can also talk to the hexbus modem in
BASIC. It recognizes the following CC40 BASIC statements: OPEN (for
INPUT, OUTPUT, or UPDATE which is both), CLOSE, INPUT, LINPUT, PRINT,
and EOF. Files are SEQUENTIAL, either DISPLAY (for text) or INTERNAL
(for programs), and have VARIABLE record lengths.
Either the Memo Processor cartridge or the BASIC OPEN statement
can be used to specify the modem's configuration options. These
include answer/originate (default answer), data bits 7 or 8 (default
7), parity (there are 5 options here, default is odd) stop bits 1 or
2 (default 1), echo on/off (default on), Transfer type (how incoming
data is sent from the modem into the CC40 - 3 options), stop
receiving if data overrun (default Y), transmit
and/or LF at end of each record (default both), and display "CARRIER
DETECT" when remote modem carrier first detected (default Y).
The neat thing about the Hexbus Modem is that it doesn't need an
RS232 interface and it doesn't need any external electricity. You
cable the Hexbus modem directly to the CC40 (or TI74) and use the
internal batteries of these two devices for power. The main
disadvantage of the hexbus modem is that it is only 300 baud. That
is the only baud rate available. If you want to use a faster modem
you need to have a hexbus RS232. You cable the hexbus RS232 to the
CC40 and connect the fast modem to the 25 pin serial port of the
hexbus RS232. Both the hexbus RS232 and the fast modem will need an
external source of electricity.
300 baud is just fine for transferring text directly into a remote
99/4A running a TI-Writer clone such as the Funnelweb editor. I am
writing this article in Michigan, and I am going to phone my Ohio
home and tansfer this text to my home 99/4A for further formatting
and storage as a DV80 file on a 99/4A formatted disk. When I call
home my 14 year old son will turn on my 99/4A, bring up the Funnelweb
text editor, type LF, and specify "RS232.CR" for the incoming file
name. Then he will activate my 99/4A's external modem. I, in
Michigan, will tell my CC40 software to "Send" "document", and this
text will go out over the phone lines into my Ohio computer. When
the RS232 light on my Ohio 99/4A stops blinking my son will press
CLEAR (FCTN/4) and the text will be displayed on the 99/4A's monitor.
He will then SF the text to disk. Neat!
I can also call my local library and access their on line catalog
catalog with my CC40 and hexbus modem. The library puts out an 80
column 24 line display. It is kind of hard windowing L/R and U/D
with the CC40 to see this display, but it can be done. Even with a
CC40 there is enough memory to hold one page of such a remote
display. Quite frankly, for accessing the library catalog I prefer a
computer with a real multi line 80 column display.
By modern standards 300 baud is very slow and some on line do not
support this slow baud rate. But the hexbus modem has its its
usefulness. For sending CC40 text it is perfect, since neither Memo
Processor nor the Funnelweb editor accept baud rates faster than 300.
I think the hexbus modem/CC40 combination was the first totally
battery powered telecommunication package ever available to the
public in 1984. The Tandy 100 computer, battery powered with a built
in modem, came later.
Sources of supply: CECURE will sell you a hexbus modem for $30
plus $5 shipping. Call them at 414-679-4343. Jim Lesher also has
hexbus modems. Call him at 214-821-9274 for price and availability.
=============================================================================
C4ICS018
Content-Type: TEXT/plain; SizeOnDisk=6512; name="NAMEADD.TXT"; CHARSET=US-ASCII
Content-Description: NAMEADD.TXT
June 1991
USING THE CC40 AS A PORTABLE DATA BANK: A BASIC PROGRAM FOR THE CC40
by Charles Good
Lima Ohio User Group
Have you seen those electronic "organizers" in the department stores? They
are battery powered dedicated computers that look like large calculators.
Marketed under names such as "THE BOSS" or "THE ORGANIZER", they are
designed to store lists of names and adresses or hour by hour appointment
calendars. With these devices it is easy anywhere and anytime to sort
through a large data base for a particular name, address, or phone number.
With many of these devices you can download their data to a desktop PC or
print the information on a printer.
Well, you can do the same thing with a CC40. Since the CC40 has CMOS RAM,
any BASIC program entered into the CC40 stays in memory even after the
computer is turned "off". BASIC programs will remain in the CC40's memory
for many months in the "computer is turned off" mode before the batteries
finally need to be changed. Short appointment calendar notes or address
lists can be stored in the CC40 as text that is displayed when any of the
ten user programmable hot keys are pressed from command mode. Data can
also be stored as part of a memory resident BASIC program, but there is a
potential problem with this method. Although the CC40 retains a BASIC
program in memory when it is turned "off", it does NOT retain any of the
numeric or string variables generated by the BASIC program. There are CC40
programs in my software library that allow you to open a disk (or
wafertape) file and read in a list of names addresses and phone numbers.
When you do this and then later turn the CC40 "off" to conserve battery
power, the BASIC program remains in memory. However, the data read in from
disk and stored in strings is GONE! There is certainly no advantage to the
CC40's portability if you have to go to a disk or tape drive every time you
want to look up someone's phone number! The solution to this problem is to
store your information as an actual part of the BASIC program, in line
numbers with REM remarks or DATA statements. When stored this way, your
data is retained in the CC40's memory even when the CC40 is "off".
I wrote the CC40 program below to deal with this situation. A somewhat
similar CC40 program was published in Vol 1 #2 of ENTHUSIAST 99, but it
doesn't work on many CC40's because it POKES to an absolue memory address.
My program works! It stores a name/address/phone list as data statements.
Only one person's data at a time is READ into string variables. Thus, the
CC40's memory is not wasted storing the entire data bank twice, once in
DATA statements and a seccond time in strings. From the running program
you can view all the data or search for the data of one particular person
by inputting the person's last name. I have REMed lines 130-150 that allow
you to view all names because this feature will only rarely be used. To
view all names it is just as quick to LIST the data statements to screen or
printer. Because of the POS statement in line 200, you don't even have to
spell the entire last name you are searching for correctly. All you need
is a text string that is contained within the last name, such as inputting
BUCK when searching for the last name ARBUCKLE. If the data base includes
more than one person with the same last name the program will still find
the information you want. All data for each person is displayed on a
single 80 column line. You can scan left/right across this line of data at
your leisure from the running program using the CC40's arrow keys.
You can store about 100 program lines of names, addresses, and "other
information" as DATA statements with this program using a minimum 6K CC40.
It takes just a few seconds to find the last of the 100 DATA statements in
a name search. Editing is easy. From the CC40's command mode just bring
up the appropriate line number containing the DATA statement and type over
or add to the existing DATA of that line number. To add more names to the
data bank, just create more BASIC line numbers for the additional DATA. To
obtain a hard copy of the data you can LIST the program to a HexBus
compatable printer. You can also use the HexBus RS232 peripheral to list
the program (with all your DATA) to a non HexBus printer or dump the
program (via a cable linking the HexBus RS232 to the 99/4A RS232) directly
into a 99/4A.
A new or used CC40 (advertised for $50 in the May 1991 issue of
MICROPENDIUM) will cost less to purhase than most of the currently
available electronic "organizers". Although you can't put a CC40 in your
pocket as can be done with many modern electronic organizers, you can
easily put the "smaller than most books" CC40 in a small briefcase or a
purse. And you do so much more with the CC40! Unlike most of the modern
"organizers", the vintage 1983 CC40 is a portable and truely flexable
PROGRAMMABLE computer. "Modern" does not always mean "better".
Paid members of the Lima UG who own CC40's with mass storage can send a
quickdisk or wafertape and a paid return mailer to the newsletter address.
I will be glad to copy the program onto your media and send it back to
you.
100 REM CC40 BASIC
110 REM writtten by Charles Good, Lima Ohio User Group, June
1991
120 PRINT " --NAME/PHONE/ADDRESS FILE--":READALL=0:PAUSE 1
130 REM INPUT "READ ALL NAMES? Y/N ";YN$
140 REM IF YN$="Y" THEN READALL=1:GOTO 180
150 REM IF YN$="y" THEN READALL=1:GOTO 180
160 PRINT "USE UPPER CASE TO ":PAUSE .5
170 INPUT "ENTER DESIRED LAST NAME- ";INPUT$
180 READ FN$:IF FN$="END"THEN PRINT "END OF FILE":PAUSE 1:
RESTORE 1000:GOTO 120
190 READ LN$,REST$: IF READALL=1 THEN 250
200 IF POS(LN$,INPUT$,1)=0 THEN 180
210 INPUT "Is the person "&FN$&LN$&"? ";YN$
220 IF YN$="Y" THEN 250
230 IF YN$="y" THEN 250
240 GOTO 180
250 PRINT FN$&" "&LN$&" "&REST$:PAUSE
260 IF READALL=1 THEN 180
270 RESTORE 1000:GOTO 120
970 REM FIRST NAME,LAST NAME,OTHER INFORMATION such as phone
number and address
980 REM Use ONLY UPPERCASE for first and last names. Commas
are required after
990 REM the first and last name. Use no commas in the OTHER
INFORMATION field.
1000 DATA BARBARA,GOOD,616-857-2256 11 LAKESHORE DR. DOUBLAS
MI 49406
1010 DATA IAN,GOOD,419-667-3131 15276 MAIN VENEDOCIA OH
45894
1020 DATA JACK,TURNER,CHESTNUT LANE DOUGLAS MI 49406
10000 DATA END
=============================================================================
C4ICS019
Content-Type: TEXT/plain; SizeOnDisk=3646; name="OEMCC40.TXT"; CHARSET=US-ASCII
Content-Description: OEMCC40.TXT
June 1991
WHEN IS A CC40 NOT A CC40?
by Mike Wright
45 Centerville Dr.
Salem NH 03079
Although TI pulled out of the Home Computer business in 1983, it did
not drop its other computer lines. The TI Pro, an IBM compatible,
surived for awhile before it too sucumbed. The CC40 continued to be
sold until at least 1988, BUT NOT BY TI!
Now the CC40 is a typical TI product - well built, well documented,
and designed to handle that TI staple, the removable software module.
But by 1988 it was showing its age with a 31 character one line
display and should have been long gone.
One reason for its longevity may have been that TI had OEMed the CC40.
OEM stands for Original Equipment Manufacturer. You can see many
examples of the practice in Radio Shack calculators. TI or someone
like Casio actually manufactures the calculator, and then puts the
seller's name on it. So if you buy it at Radio Shack it's a Radio
Shack calculator. Elsewhere it's a TI calculator. Except for the
name, they are the same.
At the Lima Multi Group Conference in May 1991 I was shown two
advertisements. The first was from MCC Powers, 2942 MacArthur Blvd.,
Northbrook IL 60062. In the Feb 85 issue of HEATING, PIPING, AND AIR
CONDITIONING magazine, the company ran an ad titled "New Powers within
your reach". An MCC Powers computer is shown in dramatic color
alongside the text: "Now spec affordable energy management for
buildings as small as 50,000 sq ft. Choose the system over 300
customers have already picked: the MCC Powers Stand alone Energy
Management System." The computer pictured is simply a CC40 with the
name "MCC Powers" in place of the standard TI logo. You can still see
the a TI logo on the lower left of the "MCC Powers computer"
illustrated in the ad. MCC supplied software to accomplish the stated
task, but the module slot in the illustrated "MCC Powers Computer" is
either blank, or else the module was black and did not have a label
showing through the module window.
The other company was Guhring Inc., 1455 Commerce Ave, Brookfield WI
53005. Their product was called "Guroguide I", which was a CC40 with
their own module. I contacted the company and they were kind enough
to send me their last color brochure. They stopped selling the
Guroguide about two years ago.
According to their brochure: "The Guroguide I computer drill selector
consists of a Texas Instruments hand held computer with a 32K EPROM
cartridge containing the drill selection program. It contains all the
data necessary for most drilling applications and, with minimum input
from you selects the proper tool and presents you with a 3-digit
catalog number. It automatically calculates spindle speed (RPM),
penetration rate (IPM), net drilling time, and required peck cycles."
The top of the computer illustrated in the brochure, from the left
edge to the module port, was silkscreened in large letters to display
GUROGUIDE. Guhring advertised the Guroguide in the Feb 88 issue of
INDUSTRIAL MAINTENANCE PLANT OPERATORS magazine.
Given the above, my suggestion is that TI was able to establish an OEM
market for the CC40. This is one reason why the machine was not
dropped, like the 4A. In fact, software and some peripherals for the
CC40 are still available directly from 1-800-TI-CARES.
===========================================================================
C4ICS020
Content-Type: TEXT/plain; SizeOnDisk=5149; name="ORPHAN.TXT"; CHARSET=US-ASCII
Content-Description: ORPHAN.TXT
APRIL 1992
THE OTHER TI COMPUTER ORPHAN
by Gary Fitzgerald
Nutmeg 99ers and Lima Ohio UG
I have secret information that a few members of your
user group are in fact DOUBLE TI ORPHANS. The tapping of
chicklet-like keys has given you away! There are those
among you that possess a CC-40. Well, so do I. and in
recent months, I too have begun to take the little bugger
off the shelf and USE IT. Allow me to tell my tale.
Some years back I purchased a CC-40 for no good reason
except that it was there, and cheap. I played around for a
bit, worked out programming problems on it before
reprogramming for the 99/4A. And then it sat on the shelf
until I got wind of a small but active UG in Lima Ohio. I
began a very rewarding correspondence with Charles Good and
ordered up a bunch of disks from their library, which is
quite extensive. And in among those disks were a series of
articles about the CC-40, more information than I had ever
seen. In this article I want to show you what you may not
already know about your 9" by 6" by 1" "computer". Did you
know there is a disk drive for it. And an 80 column printer
for SEVENTY BUCKS! And a printer/plotter! and an RS2342
with a parallel output option as well! And now - the big
news. You can prepare a document using the Memo Processor -
Telecommunications cartridge and port it over to Funnelweb!
You need the proper cable (not TI's serial printer cable) to
connect the CC40's RS232 to the TI's RS232. The cable and
both kinds of RS232s are available from L.L. Conner
Enterprise. This cable has to be properly configured and I
suppose if I took out my Radio Shack Multitester I could
tell you the proper pin-ins and outs so you could build your
own, but why not give Mr.^Conner a little business and
support the dealers that still support us. Without any
further delay, I'll tell you the procedure for doing this.
I borrow liberally from Charles Good and his articles. As a
matter of fact, I will quote directly from his letter to me.
--1. Boot the Funnelweb editor, type LF <enter>, then
type RS232.CR <enter>. The 99/4A cursor locks up and ceases
to flash. This is normal.
--2. After connecting thr CC40 to the HexBus RS232,
turn on the RS232 and then the CC40.
--3. Enter Memo Processor. When your document in
memory is on the LCD screen, press FN and then the comma
key (If you have the overlay, it says <COMM over the comma
key). The CC40 says NOW IN COMMUNICATIONS, then READY TO
COMMUNICATE.
--4. Press FN and the + key (SEND DOC). The CC40
displays SENDING DOCUMENT TO HOST. You will observe your
document's text scroll across the CC40's screen.
--5. When the document ceases to scroll across the
CC40's screen this means it has all been sent. On the 99/4A
press FCTN/4 and <enter> to display the document on the
monitor of your 99/4A.
It works! Now you can prepare text for the 99/4A
laying in bed, on the beach, or sitting in a car (on the
passenger side, lets not be rediculus!). Anywhere your
large computer can't go there is surely room for the CC40.
Let me briefly go over what goodies are available for
this pre-laptop machine. I will quote TI direct prices as
of November 1991 unless otherwise noted. among the
application cartridges, the MEMO PROCESSOR, SS3004 ($20),
is probably the most useful to own. Also available are
FINANCE, (SS3006 $20), ELECTRICAL ENGINEERING (SS3007 $20),
STATISTICS (SS3008 $20), MATHEMATICS (SS3009 $20), and GAMES
(SS3024 $20). Also available are the 8K CONSTANT MEMORY
(SS2000 $30) which may be used to store programs much like
the Mini memory or to add 8K RAM to the CC40's standard 6K.
There is also a 16K cartridge (SS1000 $40) for increased
RAM. TI also has 8 inch HexBus cables (HX C08, $9.95), an
AC adaptor (A9201 $18.95), and the PRINTER 80 (HX1010 $70)
which can be used as a thermal printer or used with ribbons
that are available from TI and elsewhere. I know of two
working WAFERTAPE DRIVES in existence. These are storage
devices that resemble the Adam computer's tape drives.
There are pronter/plotters available from L.L. Conner and
Jim Lesher, but for my money the disk drive from T.A.P.E.^of
California and the PRINTER 80 are the most needed
peripherals. Any computer is almost worthless unless you
can store your programs and call them up on demand. You
want to type in a program every time you need it? There is
a PASCAL cartridge unavailable from TI that seems to be way
over priced at $50 from Jim Lesher (Yes, I paid for
it...through the nose!!). You may also upgrade the 6K to
18K internal RAM following the directions contained on the
disk. If you are not good with small parts or soldering,
L.L.^Conner will sell you one all done up with the extra
memory. Jim Lesher has recently advertised good prices on
CC40s and HexBus peripherals (Micropendium, March 1992).
There are some good deals out there, particularly compared
to the cost of a "modern" laptop computer.
===========================================================================
C4ICS021
Content-Type: TEXT/plain; SizeOnDisk=11397; name="PCIF.TXT"; CHARSET=US-ASCII
Content-Description: PCIF.TXT
TI'S "PC INTERFACE" AN EASILY AVAILABLE AND RELIABLE
MASS STORAGE ALTERNATIVE FOR CC40 AND TI74 OWNERS
a hands on description by Charles Good
Lima Ohio User Group
The CC40 mass storage problem... Wafertape drives are rare collector's
items. The last unsold QUICKDISK drives for TI74s and CC40s were literally
thrown in the trash by their manufacturer (Jan 1993 BB&P, p.12). CC40 programs
can be stored on 8K constant memory ram cartridges, but these are rather
expensive, their batteries are 10 years old, and they can no longer be
purchased new directly from TI. Well, it turns out that the TI74
PC-INTERFACE, a $60 device available since late 1988 directly from TI, can
easily be modified for use as a mass storage device for the CC40. (Successful
use of the PC-INTERFACE with the CC40 was first reported in the March 1993
issue of BB&P.)
The TI74 is an "almost pocket sized" basic programmable calculator
operationally very similar to the CC40. The PC-INTERFACE is designed to
allow the TI74 to directly control the printer, floppy dirves, and hard drives
of an IBM compatible (PC,XT,AT, DOS2.1 or highter) computer. You can also use
a TI Professional computer. The actual interface consists of a cable with a 25
pin male connector for connection to the PC's parallel port, and a straight
line 10 pin female connector to connect to the IO port of the TI74. Some
electronic components are part of this cable. A 5.25 inch disk of software that
runs off of the PC is also included with the INTERFACE package. This software
is needed to make the INTERFACE work properly.
BB&P articles by Jim McCulloch (March 1991) and Dan Eicher (Feb 1992)
suggest how to adapt an 8 pin female hexbus cable (attached to the CC40) to the
10 pin end of the INTERFACE. Resistor leads or similar thin stiff wire are cut
and inserted into the appropriate holes of each cable, linking the two cables
together. Thats all there is to it! Electronically the hexbus and TI74 10 pin
cables are identical. You just connect the right wires together. Pin diagrams
are in the Eicher article. The task is easier if you have one of the male
hexbus-to-female 10 pin commercially made adapters mentioned in the McCulloch
article. 99/4A disk files or hard copies of these articles can be obtained
from the Lima UG by sending a (disk and) paid return mailer to P.O. Box 647,
Venedocia OH 45894.
To activate the interface type PCIF from the DOS prompt. The PCIF program
runs and turns the PC into a slave of the CC40 or TI74. The PC is now one of
four device numbers and can be accessed from the CC40/TI74 by number, just like
any other peripheral.
14^^Printer connected to a second PC parallel port.
45^^The PC monitor
100^PC floppy or hard drive for program storage
101^PC floppy or hard drive for data or program listings.
PC STORAGE OF CC40 OR TI74 BASIC PROGRAMS
You can RUN, OLD, and SAVE by entering the appropriate commands into the
CC40 or TI44. Here are some examples of commands from the CC40 or TI74 that
activate the PC. PC file names are limited to 8 characters plus a period and
three character file extension. Use of file extensions as part of a PC file
name is optional.
SAVE "100.PROGRAM" saves a basic program called PROGRAM (with no file
extension) to the same PC drive or hard disk directory as the PCIF program.
SAVE "100.C: CC40 PROGRAM" saves a basic program to hard disk C, sub
directory CC40, file name PROGRAM.
OLD "100.C: CC40 PROGRAM" will load the basic program saved in the above
statement.
RUN "100.PROGRAM.PGM" will load and run a basic program called PROGRAM
(with the otpional file extension ".PGM") stored on the same disk and directory
as PCIF.
USING THE PC TO CREATE AND/OR EDIT CC40 OR TI74 BASIC PROGRAMS
LIST "45" lists the CC40 or TI74 program in memory to the PC monitor.
Editing this displayed list is apparently not possible, but you can
LIST "101.C: CC40 PROGRAM.B74". This creates on the specified drive and
subdirectory an ASCII file of the program listing. Later, when you are using
your PC under its own control this file can be loaded into any word processor
for editing. You can also create a program from scratch using a PC word
processor. Each line of this text must begin with a line number. The edited
file can be resaved as an ASCII file. Then you use a PC utility that comes on
the INTERFACE disk to convert this ASCII file to a runable CC40 or TI74 basic
program that is saved to a PC disk or hard drive. Next time you hook up your
CC40 or TI74 and activate the INTERFACE (by typing PCIF) you can OLD the new
program off of the PC drive into the smaller computer.
DATA STORED ON PC DISKS OR DISPLAYED ON SCREEN
OPEN #1,"101.C CC40 FILENAME" will open a DISPLAY, VARIABLE 80, SEQUENTIAL
file named FILENAME in UPDATE mode on hard disk C, sub directory CC40.
INTERNAL and RELATIVE files are not supported by the PC INTERFACE. You can
PRINT #1, INPUT #1, or LINPUT #1 to and from this file. The EOF function is
available.
OPEN #2,"45",VARIABLE 40,OUTPUT will display anything you PRINT #2 on the
PC's monitor in 40 columns. OPEN #2,"45",OUTPUT will display data on screen in
80 columns since the default is VARIABLE 80. As mentioned above, you can also
LIST "45" a program to the screen.
HOW ABOUT THE PC's PRINTER
Almost all PCs have only one parallel output. You have to disconnect the
printer cable from this output in order to attach the PC-INTERFACE, which can
be very inconvenient. This means that most of us, myself included, can't use
the PC-INTERFACE to allow the CC40/TI74 to control the PC's printer. You are
supposed to be able to LIST "14" or OPEN #1,"14",OUTPUT and PRINT #1 to the
printer. You can control sending or not sending line feeds and carriage
returns at the end of each record.
ADDING ASSEMBLY CALLs TO THE TI74 WITH THE PC-INTERFACE
CC40 basic has built in subprograms (PEEK, POKE, etc) relating to assembly
language which are missing from the TI74. On the PC-INTERFACE disk are a group
of assembly subprograms that can be loaded from the PC into the TI74 and then
CALLed from a TI74 basic program, just as is done with the CC40. Once loaded,
these assembly subprograms for the TI74 remain in memory even of the OFF button
is pressed. Memory occupied by these assembly routines is subtracted from
memory available to basic. This is reflected in a decrease in available memory
that shows when you type FRE(0). Assembly routines are only lost if you enter
NEW ALL or if the TI74 is reinitialized (by pressing the reset button or taking
too much time changing batteries). The following are available on the
PC-INTERFACE disk for loading into the TI74. CC40 owners will be familiar with
all of these except IOX.
--CALL CHAR (defines character patterns for ASCII 0 through 6)
--CALL CLEANUP (deletes variable names in memory left over from previous
basic programs)
--CALL EXEC (starts assembly routine at specified address)
--CALL GETMEM (reserves memory for assembly program or data)
--CALL INDIC (turns on or off the display indicators at programmer's will)
--CALL IOX (an enhanced version of the TI74's CALL IO that is exactly
comparable to the CC40's CALL IO. Although you can't determine this from
reading the TI74 and CC40 user guides, the CC40's CALL IO is more powerful than
the TI74's CALL IO.)
--CALL PEEK
--CALL POKE
--CALL RELMEM (the reverse of GETMEM, releases memory back to basic)
These subprograms add capabilities to TI74 basic that make it almost as
good as CC40 basic, but not quite. CC40 has CALL DEBUG and CALL BEEP for
example. One important use of these subprograms is that the TI74 can now use
the various DIRectory programs that have been written to read directories of
Quickdisk drives and Wafertape drives. Loading CALL PEEK, CALL IOX, and CALL
GETMEM allows the TI74 to read Quickdisk and Wafertape directories with "DIR"
programs designed for use by a CC40.
MISCELLANEOUS COMMENTS
--You can't SAVE text from MemoProcessor to a PC disk in the normal way
because INTERNAL files are not supported. You can, however, SEND DOC, from
MemoProcessor to the HexBus RS232 cabled to a PC, creating an ASCII file on a
PC disk.
--The CC40 Editor/Assembler cartridge won't work with the PC-INTERFACE.
You can save source code, but you can't save the assembled or linked code which
is in internal format.
--PASCAL software generated with the CC40 or TI74 PASCAL cartridge can be
saved and loaded via the INTERFACE.
--The following CC40 and TI74 cartridges can direct output to printer or
PC monitor via the INTERFACE: Pascal, Chemical Engineering, Finance,
Mathematics, and Statistics.
--If you own a TI95 keystroke programmable calculator, you can use the
INTERFACE to store programs as ASCII listings or as runable images, images of
8K ram cartridges, images of MEM files, and a listing of register contents. You
can also display or print data or program listings.
--The size in bytes of a CC40/TI74 basic program stored on a PC disk
(readable by exiting PCIF and then typing DIR on the PC from the DOS prompt) is
exactly the size of the program will occupy in the CC40/TI74's memory.
--The BASIC TI74/CC40 word processing program by myself and Palmer Hanson
will save nicely formatted text as an ASCII file to the PC via the PC
interface. As published in the Sept. 1992 issue of the Lima newsletter, line
4005 of this program is in error. It should read "101.FILENAME.DOC" instead of
"100.FILENAME.DOC".
==============================================================================
C4ICS022
THE TI74 "PC INTERFACE" WORKS AS AN
ALTERNATIVE MASS STORAGE DEVICE FOR THE CC40
From a letter to the BB&P editor by Harry Nilsson
Pl. 367 Lillsjoberg
910 31 Tavelsjo SWEDEN
I have the TI74 with some cartridges and the PC-Interface and some
homemade adapters so I can use the CC40 with my PC (saving programs on the PC
diskettes or harddisk. .... I prefer the CC40 because it has more "feel of
quality" then the TI74 and also more statements like CALL DEBUG.
I haven't been able to save text from Memo Processor to the PC via the PC
interface because the PC interface doesn't work with the "internal data" file
format that MP's SAVE uses. .... But of course it is possible to save text from
MP with "Send Doc" to the PC via the PC interface or the RS232 interface (even
at 19200 baud with [FN]Q).
There is a diskette ("Driver software and utilities" for the PC) with
assembler programs (CALL PEEK, CALL POKE, CALL HCAR, CALL LOAD and so on) for
the TI74. I have version 1.01 that comes with the TI74 PC interface.
[Charles Good's note: As of March 1993, the TI74 PC Interface can be
purchased directly from TI for $60 plus shipping and sales tax. To order, call
800-TI-CARES. This cable plugs into the PARALLEL port of an MS-DOS PC. The
above mentioned software is on a 360K 5.25 inch MS-DOS disk.]
=============================================================================
C4ICS0023
Content-Type: TEXT/plain; SizeOnDisk=3129; name="PDS.TXT"; CHARSET=US-ASCII
Content-Description: PDS.TXT
DECEMBER 1992
A DAY AT THE RACE TRACK WITH A CC40
On page 111 of the Jan.^1990 catalog of ADVANCED
COMPUTER PRODUCTS INC. of 1310 E. Edinger, Santa Ana
California 92705 is a picture of a CC40. But the computer
is labeled "PDS SPORTS" above the usual "Texas Instruments
Compact Computer 40" that is also shown engraved on the
computer. The display on the computer's LED says "THE
SPORTS JUDGE". Apparently users were supposed to take the
PDS SPORTS computer to the racetrack or to a sporting event
and enter data for up to the minute handicapping and
statistics. Software for the PDS SPORTS computer is
apparently offered on cartridges, and most interesting of
all "Data disks" of past seasons or current season-to-date
are advertised. Does the PDS SPORTS system include a a CC40
AND a Mechatronic Quickdisk disk drive, or are the disks in
PC format containing data that has to be manually entered
into the PDS SPORTS computer? The text of the catalog does
not make this clear. ADVANCED COMPUTER PRODUCTS INC is a
surplus reseller. I phoned ACP in late November 1991 and
was told they no longer had this product available. The
person I talked to could give me no information. Here is
the text of the 1/90 ACP catalog:
"Thoroughbred Handicapping System
"Handicap the entire day's card in less than one hour
using the software system designed and used by the Pro's.
approved and verified by the American association of
documented Sports Services. As past performances and the
day's relevant information are entered the system
automatically applies proven formulas for Class, Pace,
Speed, Distance, Recency, Track Category, Trainer, Jockey,
or harness Driver. ACP of course makes no guarantee on
these programs. All Horse Racing packages include (3)
programs: Horse program + Trainer & Jockey.
Package #1 (TB-JO-TR)
Thoroughbred Horse Racing............$179
Thoroughbred Handicapping System.....$125
Package #2 (HA-DR-TR)
Harness Horse Racing.................$179
Harness Horse handicapping System....$125
Package #3 (QH-JO-TR)
Quarter Horse Racing.................$179
Quarter Horse Handicapping System....$125
"PDS TRAINER JOCKEY STATISTICS PROGRAMS
Trainer Statistics System............$39.95
Jockey Statistics System.............$39.95
Harness Stastics System..............$39.95
"PDS FOOTBALL HANDICAPPING & STATISTICS
Football Handicapping & Statistics...$69.95
NFL data Disks.......................$19.95
Past seasons or season to date
"PDS BASEBALL/BASKETBALL HANDICAPPING & STATISTICS
Baseball Handicapping & Statistics...$69.95
Baseball Data Disks..................$19.95
Past seasons or Season to date
Basketball Handicapping & Statistics.$69.95
Basketball Data Disks................$19.95
Past seasons or season to date
"PDS LOTTO PLAYER
Computer LOTTO player.................call
==========================================================================
C4ICS024
Content-Type: TEXT/plain; SizeOnDisk=5673; name="PHONTRAN.TXT"; CHARSET=US-ASCII
Content-Description: PHONTRAN.TXT
Originally published December 1992, Lima newsletter
"PHONE NUMBER TRANSLATOR"
BASIC software for the 99/4A, CC40, and TI74
that demonstrates the use of "PRINT #0"
by Charles Good
Lima Ohio User Group
The BASIC software listing below is interesting for
three reasons. 1-The program does something useful. 2-An
unusual programming technique, PRINT #0, is used. 3-The
software is a good example of how easy it is modify
CC40/TI74 BASIC programs so they will run on the 99/4A, and
visa versa.
As explained in the REM statements, TELEPHONE NUMBER
TRANSLATOR converts a seven digit phone number into its all
letter equivalents, such as TI-CARES. There are 2187
possible letter combinations for any 7 digit phone number,
and they are all displayed on screen or optionally sent to
a printer or a disk file. 99/4A users will probably find
the easiest way to read the output of this program is to
send the output to a disk file by specifying "DSK1.FILENAME"
at the DEVICE NAME OR NUMBER prompt. Then load the
resulting DV80 file into any word processor and scan the
file on screen. Perhaps a readily recognizable group or
partial group of letters will make it easier to remember a
particular number.
The usual way to direct the output of a BASIC program
optionally to either the screen or to a printer is to have
a branch point in the program. Screen output branches to a
group of program lines that PRINT data to the screen.
Selecting printer output branches to a different group of
program lines that PRINT #1 to a file OPENed as "PIO", some
other printer name, or a hex bus device number. This
program uses only one set of code lines to direct output to
both the screen and printer. This saves memory. PRINT
lines say "PRINT #X". When the program is first RUN, all
numeric variables including X are set to zero. Device zero
is the screen, so unless the value of X is changed, every
time a PRINT #X is encountered the computer will "print" to
file #0 which is the screen. If optional printer output is
selected, lines 180 and 190 set X equal to 1 and OPEN file
#1 to the designated printer name. Later, every time the
program reaches a line that says PRINT #X, output is
directed to the printer (file #1) rather than to the screen
(file #0).
In previous newsletter articles I have noted that TI
BASIC and Extended BASIC for the 99/4A is very similar to
the BASIC's of the CC40 and TI74. TELEPHONE NUMBER
TRANSLATOR is an excellent example of the similarities. I
took a published 99/4A program, modified it for use with my
TI74, and added some new features including printer output.
In lines 40-80 I have included in REM statements detailed
instructions for modifying my CC40/TI74 program so it will
run on an unenhanced 99/4A console only TI BASIC system. The
required modifications are VERY minor. This illustrates how
easy it is to convert BASIC software that doesn't use color,
sound, speech, or user defined graphics back and forth
between the 99/4A the CC40 and TI74.
The CC40/TI74 version is listed below. A version for
the 99/4A can be downloaded as software with the electronic
edition of the November 1992 Lima newsletter posted on GENIE
and on the C.O.N.N.I Newsletter Article Clearing House BBS.
10 REM TELEPHONE NUMBER TRANSLATOR - This version for CC40 and TI-74.
20 REM Converts a 7 digit phone number into all possible letter equivalents
30 REM such as 842-2737 into TI-CARES.
40 REM To modify for TI BASIC running on a 99/4A do the following:
50 REM 1-Remove ":PAUSE X" (X is a number) found at the end of most PRINT lines.
60 REM 2- Change ";" to ":" in lines 130 and 170.
70 REM 3- Change "#X," to "#X:" in lines 190 420 430 440 450 460 470 480 and 500
80 REM 4- Change lines 240 and 510 from CALL KEY(K,S) to CALL KEY(0,K,S).
85 REM 5- Change "#1," to "#1:" in lines 286 287 and 289
90 REM Modified in August 1992 by Charles Good for CC40 and TI74.
100 REM Original 99/4A program from "Zappers, having fun programming 23 games
110 REM for TI99/4A" by Henry Mullish & Don Kruger, 1984, Simon & Schuster
120 PRINT " Ring -- Ring -- Ring":PAUSE 2
130 INPUT "Use putput device? Y/N ";P$
140 IF P$="Y"THEN 170
150 IF P$="y"THEN 170
160 GOTO 200
170 INPUT "Device name or number? ";DN$
180 X=1
190 OPEN #X,DN$,OUTPUT
200 PRINT "Using no dashes, type the seven":PAUSE 1
210 PRINT "digits or letters of a phone #"
220 CHAR$="000111ABCDEFGHIJKLMNOPRSTUVWXY"
230 FOR I=1 TO 7
240 CALL KEY(K,S)
250 IF S<1 THEN 240
260 IF (K<48)+(K>57)*(K<65)+(K>89)THEN 240
270 IF K=ASC("Q")THEN 240
280 PRINT CHR$(K);
282 IF X=0 THEN 290
284 IF I<>1 THEN 287
286 PRINT #1,"For telephone number ";
287 PRINT #1,CHR$(K);
288 IF I<>7 THEN 290
289 PRINT #1,""
290 IF K<58 THEN 310
300 K=INT((POS(CHAR$,CHR$(K),1)-1)/3)+49
310 NUMB(I)=(K-48)*3
320 NEXT I
330 PRINT
340 PRINT "Hold any key for temporary STOP":PAUSE 1
350 FOR A=1 TO 3
360 FOR B=1 TO 3
370 FOR C=1 TO 3
380 FOR D=1 TO 3
390 FOR E=1 TO 3
400 FOR F=1 TO 3
410 FOR G=1 TO 3
420 PRINT #X,SEG$(CHAR$,NUMB(1)+A,1);
430 PRINT #X,SEG$(CHAR$,NUMB(2)+B,1);
440 PRINT #X,SEG$(CHAR$,NUMB(3)+C,1);
450 PRINT #X,SEG$(CHAR$,NUMB(4)+D,1);
460 PRINT #X,SEG$(CHAR$,NUMB(5)+E,1);
470 PRINT #X,SEG$(CHAR$,NUMB(6)+F,1);
480 PRINT #X,SEG$(CHAR$,NUMB(7)+G,1),
490 N=N+1
500 PRINT #X,N;"of 2187":PAUSE 1
510 CALL KEY(K,S)
520 IF S=-1 THEN 510
530 NEXT G
540 NEXT F
550 NEXT E
560 NEXT D
570 NEXT C
580 NEXT B
590 NEXT A
600 IF P$="Y" THEN CLOSE #1
610 IF P$="y" THEN CLOSE #1
620 END
============================================================================
C4ICS025
Content-Type: TEXT/plain; SizeOnDisk=8767; name="PRINPLOT.TXT"; CHARSET=US-ASCII
Content-Description: PRINPLOT.TXT
January 1991
THE HEX BUS PRINTER/PLOTTER
described by Charles Good
Lima Ohio User Group
This tiny printer, model HX1000, was released in 1983 as the main
printing device for TI's CC40 computer. It can be used with any
other computer that has a HexBus interface, including the 99/4A (if
you have the never released HexBus adaptor), the 99/8, the 99/2, and
the TI74 calculator. The Printer/Plotter measures about 15x11.5x4.5
cm and can be operated on battery power or an AC adaptor. You can
carry the Printer/Plotter and the CC40 in a very small briefcase as a
truely tiny completely portable computer/printer package. It is
still available new or used for about $90-$125 from dealers such as
L.L. Conner Enterprise (phone 317-742-8146) and Jim Lasher (phone
214-821-9274). Since this is an official TI product, TI still
supports this device and will replace defective Printer/Plotters on a
flat fee exchange basis.
If you have never seen a true plotter before you are in for a suprise
when you see the HX1000 in action. It is unlike any dot matrix,
daisy wheel, or laser printer I have ever seen. The HX1000 uses 4
small ball point pens, each about 2 cm long, to draw lines on 2.25
inch wide adding machine paper rolls (plain paper, not thermal
paper). You can squeeze paper rolls up to 30mm in diameter
completely inside the paper chamber of the HX1000 for minimum size
and maximum portability. A swing out arm permits larger diameter
paper rolls to dangle behind the Printer/Plotter. Such larger rolls
are available in almost any store that sells paper, pens, and school
supplies. The four pens, one each in black blue red and green, are
held in a rotating pen holder. These little pens are currently
available at several of my area Radio Shack stores. When you power
up the HX1000 it draws four small boxes on the paper, each a
different color, to get the ink flowing in its pens. In normal
operation the HX1000, under control of the CC40 using BASIC commands,
sets one of these pens at a time down on the paper and actually draws
lines. The pen is moved left/right across the width of the adding
machine paper roll while the printer moves the paper vertically up
and down. There is lots of activity as the paper jerks up and down,
the pen jerks left/right and is lifted off of and back down onto the
paper, and pen colors are changed by rotation of the pen holder.
Sometimes the paper roll rapidly feeds backwards or forewards several
inches into or out of the printer in preparation for the next
operation. This is a highly mechanical device. It is a good thing
that TI still fixes these things because I suspect that due to their
mechanical nature Printer/Plotters are less reliable than a typical
dot matrix printer. Mine has given me no trouble, however.
Speaking of reliability, the internal battery power source of the
Printer/Plotter seems strange to me. Six "1.5 volt" NiCad batteries
are permanently soldered inside the printer and cannot be removed.
The HX1000 is the only battery powered HexBus peripheral with non
removable batteries. An AC adaptor comes with the Printer/Plotter to
charge the batteries and to power the printer from a wall electricity
outlet. Even when using the AC adaptor, however, the batteries must
be near full charge for the printer to function properly. I know
that soldering the batteries assures good reliable flow of current.
However, I also know that after lots of charge/discharge cycles,
permanently installed NiCad batteries refuse to accept a charge. I
have a drawer full of useless "dust buster" vaccuum cleaners,
electric shavers, flashlights, and power drills all with non working
permanently installed batteries to prove this. My Printer/Plotter
sat on a warehouse shelf from 1983 until I purchased it new in
September of 1990. Its batteries work fine after all these years
because they have not gone through many charge/discharge cycles. But
when my Printer/Plotter's batteries eventually fail to hold a charge
the AC adaptor will probably not by itself be able to power the
printer. I guess I will then have to send the thing back to TI for
an exchange. I think removable batteries would have made more
sense.
From BASIC you can LIST programs to the Printer/Plotter. You can
also OPEN #1,"10,OUTPUT" a file to the HX1000 (it is device 10) and
then PRINT #1,"text" in text mode or PRINT #1,"special graphics
commands" in graphics mode. CC40 BASIC uses a comma instead of a
colon in OPEN and PRINT # statements.
Two character sizes are available in text mode, with a maximum of
either 18 or 36 characters across the width of the paper. This
paragraph is being printed in the newsletter in both character sizes
to show the difference. There is only one font, and some of its
characters look a bit unusual. The exclamation point "!", for
example, looks sort of like a wine glass. Here is the complete
character set as printed by the Printer/Plotter:
|@`~_{}[]!"#$%^&()'?:;,.<>/*-+=1234567890abcdefghijklmnopqrs
tuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
In graphics mode you can also use any of the normal character set as
part of your graphic. Characters in graphic mode can be printed in
any of 10 sizes! Letters and other prededined characters can be
printed normally (right side up and left to right), rotated 90
degrees clockwise and printed down the paper (as in the banner
example that accompanies this article), upside down from right to
left, and rotated 270 degrees printed up toward the end of the paper
roll as the paper is sucked backwards into the Printer/Plotter. The
sample banner shown is an example of the largest letters printed
sideways down the length of the paper roll. In this banner each
letter is overwritten several times, advancing the paper slightly
after each overwrite to make the letters of the banner appear thick.
The Printer/Plotter printed the first line of the banner, then sucked
the paper roll back in and printed the second line of text. The
whole operation required lots of pen and paper movement!
When plotting lines in graphics mode the Printer/Plotter uses an X-Y
coordinate system with up to 216 points across the width of the paper
and 999 points along its length. Since the origin (coordinate 0,0)
can be reset at any time to the pen's current position, the actual
maximum length of a single graphic is unlimited. Lines can be drawn
from one coordinate to another to another, along a defined sequence
of coordinates. These lines between coordinates can be either solid
or dotted, with 9 different degrees of spacing possible between dots
of a dotted line. The pen can be moved to any coordinate without
drawing. Pen color can be changed.
The graph that accompanies this article illustrates the possibilities
of the Printer/Plotter in graphic mode. The CC40 BASIC program that
made this graph was published in the October 1983 issue of 99er
Magazine. The original graph is in 4 colors. The left side of the
graph is the original end of the paper roll, complete with the 4
boxes drawn at powerup. First the HX1000 printed the short axis
scale in red (-100 to 100), then it drew the short and then the long
axis lines in blue. Next it sucked the paper back into the printer
and drew the long axis scale (0-15) in black. Then it sucked the
paper in again and plotted Y=X*TAN(X) as a discontinuous solid red
line. Finally the paper was sucked in again in preparation for
plotting Y=SIN(X)/e^(X/5) as a single dotted wavy green line.
The HX1000 lists for $199.95 in TI's last June-December 1983 price
list. This can be compared to TI's impact printer, which lists in
the 1983 price list for $750 and sold in my local J.C. Penney store
in October 1983 for $450. If the HexBus interface had been released,
the Printer/Plotter would have offered 99/4A owners an inexpensive
printing alternative to with unique features such as 4 colors and
portability that are not found even today in other printers commonly
used in the TI community.
=============================================================================
C4ICS026
Content-Type: TEXT/plain; SizeOnDisk=3628; name="PRINT80.TXT"; CHARSET=US-ASCII
Content-Description: PRINT80.TXT
T.I.`s HexBus "PRINTER 80" for use with the CC40
described by Charles Good
Lima Ohio User Group
Hex Bus peripherals connect to the CC40 in a manner similar to the
way disk drives and printers connect to the Commodore 64. Most HexBus
peripherals have two HexBus 8 pin ports. The CC40 has one HexBus port.
You connect a HexBus port of the first peripheral to the CC40`s HexBus
port with a special cable. You then connect the second peripheral to
the other HexBus port of the first peripheral, etc. Peripherals chained
together in this way can be accessed individually by the CC40, and it
usually doesn`t make any difference in what order the peripherals are
chained together. You don`t need any interface cards or other special
hardware to use these small inexpensive peripherals with a CC40. Just
cable `em together! HexBus peripherals once made by T.I. include the
printer plotter (using adding machine roll paper prints 16 or 32 columns
of text and plots in 4 colors), RS232/PIO interface, 300 baud modem,
WAFERTAPE DIGITAL TAPE DRIVE, and 80 column printer. Of these, the 80
column "PRINTER 80" is the only one still available new directly from
T.I. The WAFERTAPE DRIVE is very rare and was never officially
released. The others are not too difficult to find used.
The PRINTER 80, T.I. model HX1010, costs $70 + shipping and tax, and
comes with 3 ribbon cartridges and an AC adaptor. It comes in gray
plastic and measures 12.5 x 6.4 x 1.9 inches. It can be powered with
four size D batteries or the accompanying AC adapter. You shouldn`t use
a generic selectable voltage AC adapter like those you can buy in many
stores. These are only rated at 300 milli amps and the PRINTER 80 needs
more power. In addition to the AC jack and two HexBus ports on the back
of the printer, there are four controls on top; on/off, power paper
advance, power paper reverse, and paper release.
The PRINTER 80 is a full 80 column printer that uses 8.5 inch wide
paper and has a maximum printing width of 7.5 inches. It is a very
quiet thermal printer. The cheapest way to use it is with rolls of FAX
paper. A 96 foot long 8.5 inch wide roll of FAX paper costs $3 at a
nearby discount department store. You can also use the "one pass only"
20000 character thermal cartridges that come with the printer to print
on regular 8.5x11 typing paper. Replacement cartridges cost $3 from
T.I. Printing is slow compared to most computer printers, only 20
characters per second. But that is alot faster than a good touch
typist. There is only one font, elete. There is no provision for
emphasized, condensed, expanded, NLQ, etc. fonts. What you see here was
printed on a PRINTER 80. ASCII 32-126, including lower case letters
with true descenders can be printed. You can send low numbered ASCII
codes that set the PRINTER 80 for single or double space, perform single
foreword and reverse line feeds as well as 1/2 foreword and reverse line
feeds (for subscript and superscript) without carriage returns, and
carriage returns without line feeds. There are no dot addressable
graphics. For such graphics you need the HexBus printer plotter.
There is nothing fancy about the PRINTER 80, but it has some very
attractive features. It is SMALL, CHEAP, and since it is battery
powered it is TOTALLY PORTABLE. For text printing it has all the
required features. The combination of a CC40 and a PRINTER 80 gives you
a complete, inexpensive, totally portable word processing/printing
package.
============================================================================
C4ICS027
Content-Type: TEXT/plain; SizeOnDisk=7414; name="QDISK1.TXT"; CHARSET=US-ASCII
Content-Description: QDISK1.TXT
November 1990
THE MECHATRONIC "QUICK DISK" DRIVE FOR THE CC40
described by Charles Good
Lima Ohio User Group
To CC40 owners this is a VERY important piece of equipment, since it
is the only readily available magnetic media mass storage device that
can be used directly by the CC40. Alternatives to the QUICK DISK
include TI's WAFERTAPE DRIVE (very rare and not supported by TI
because it was never officially released), the 8K constant RAM
cartridge (can store the RAM contents of a CC40 if the CC40's internal
RAM is no more than 6K), and dumping text (but not programs) to
another computer via the HexBus RS232.
The QUICK DISK drive measures about 7 x 5.75 x 2.75 inches and weighs
2.6 lbs. 2.8 inch disks are inserted via a transparent plastic lid on
the TOP of the drive. You can stack the QUICK DISK on top of a stack
of other HexBus peripherals (except for the two kinds of HexBus
printers which need unobstructed top surfaces for paper feeding), but
the drive will overhang the others a bit laterally. You can't put
devices on top of the QUICK DISK since this will block access to the
disk door. There is only one HexBus port on the back of the QUICK
DISK, unlike other HexBus peripherals which have two HexBus ports.
This means that the QUICK DISK must be the last in a chain of
peripherals.
My new QUICK DISK, as delivered by T.A.P.E., came without an AC
adapter. Unlike most other HexBus peripherals, the QUICK DISK isn't
battery powered, so you must purchase an adapter separately. Be
careful! The required voltage is 6, but the QUICK DISK draws 600mA
average current. You shouldn't use the 300mA model AC9201 adaptor
that TI recommends for the CC40 and several of its HexBus peripherals.
Likewise, you shouldn't use the selectable voltage adaptors found in
many stores. These are rated at 300mA. You need the TI's AC9401
adapter, rated at 1 amp. This is the adaptor that comes with the
HeXbus Printer 80, and you may be able to purcha-e it separately from
TI. Radio Shack sells a selectable 6 or 7.5 volt adaptor (catalog
#273 1655) for $15 that is rated at 700mA. I use the Radio Shack
adaptor to power my QUICK DISK.
The QUICK DISK uses 2.8 inch disks which come in a relatively hard
plastic enclosure. Once formatted, each side of a disk can store 64K
byte of data. The QUICK DISK is a single sided drive, but the 2.8
inch disks are designed to be used as flippies. These are not the
same as the 3.5 inch disks used in many modern computers, but they are
readily available. This is the same sort of disk that is used in
Smith Corona Personal Word Processor models 3 and 5. The disks can be
purchased from most stores that sell electronic typewriters. My
nearby SEARS, K-MART, and WALMART stores sell the disks for $6 or $7
per package of two. Radio Shack stores sell the same thing for the
TANDY PWP1000 personal word processor. They charge $17 for the 2 disk
package.
In some respects the QUICK DISK stores data in a manner similar to
TI's never officially releases WAFERTAPE DRIVE. The QUICK DISK is not
a random access device. Each disk is formatted with only one track,
spiral, like a phonograph record. Each time disk access is required,
the drive's read/write head sets down at the beginning of the track
and spirals around and around the disk until the necessary file is
found. In spite of this limitation all types of file access are
supported, including PROGRAM, DISPLAY and INTERNAL. Data files can be
SEQUENTIAL or RELATIVE and can be opened in INPUT, OUTPUT, UPDATE, and
APPEND modes. (The WAFERTAPE DRIVE does not support RELATIVE files or
APPEND mode.) Files are placed on the disk's one track in a sequential
manner. When manipulating both SEQUENTIAL and RELATIVE data files,
the entire data file is read into the CC40's memory, manipulated by
the controlling program, and then read back to the disk as the last
file on the disk. This means that file size is limited. Only one
file can be open at a time. With the CC40's basic language, it
doesn't make any difference whether you use uppercase, lowercase, or a
combination of the two when specifying a file name. [SAVE
"8.FILENAME"] and [save "8.filename"] would both be interpreted by the
QUICKDISK (device 8) in an identical way, saving a basic program to
disk under exactly the same file name.
One aspect of the QUICK DISK's operating system does take some getting
used to. The DOS cannot split files to fill small empty areas on the
disk. Each file must occupy only one continuous block of space on the
disk's single track. There is no provision for fractured files. The
only file or program that can be overwritten or altered (in the case
of a data file) is the last file on the single track, the file most
recently created. In BASIC, if you save a program or data file with
the same name as a file already on the disk, the old file will only be
replace if it is the last file. If the old file isn't the last file,
the old file will be deleted from the disk directory and a new file
will be added to the disk at the end of the track. Although you can
no longer access the previous file (which has the same name as the
newly created file), the old file still occupies disk space. In
practice, this means that you should only have ONE data file that will
ever be opened in OUTPUT, APPEND, or UPDATE mode on each disk side,
and this should be the last file. Memo Processor will not permit you
to APPEND or OUTPUT to anything except the last file. You are forced
by Memo Processor to use a different file name if you attempt to
overwrite any file on the disk except the last file.
The state of available software for the CC40 is similar to what
software was like for the 99/4a in its infancy, back in 1980/81. This
includes disk management software. Management functions we are all
used to on the 99/4a are not available for the QUICK DISK. Whole disk
copy programs do not exist. You must OLD each file one at a time into
the CC40 and then SAVE to another disk, after disk swaping, like we
used to have to do with cassette tape programs. There are no sector
editors for the QUICK DISK. Multiple drive use is not easy, since all
QUICK DISK drives are considered to be device "8", and there seems to
be no way to alter this device number.
In spite of these limitations the QUICK DISK gives the CC40
capabilities of a "real" computer. You can save to permanent magnetic
media, and you can access large data files, reading only necessary
data into the CC40's RAM. The QUICK DISK is probably essential to
anyone who wants to seriously use the CC40.
Available new for $110 plus shipping from T.A.P.E.
1439 Solano Place
Ontario CA 91764
Phone 714-989-9906
============================================================================
C4ICS028
Content-Type: TEXT/plain; SizeOnDisk=3619; name="QDISK2.TXT"; CHARSET=US-ASCII
Content-Description: QDISK2.TXT
March 1991
QuickDisk for the TI-74 (95) Basicalc
DOES WORK for the CC-40
by Jim McCulloch, Lima Ohio and Chicago User Groups
As a doubly-orphaned owner of a TI CC-40 Compact Computer, I was ecstatic
upon learning that mass storage MIGHT be available in the form of a
Mechatronics "QuickDisk" device. Upon inquiry at T.A.P.E., 1439 Solano Place,
Ontario, CA 91764 (Telephone 714-989-9906), I heard "good news and bad news".
The good news was that he had drives available in stock. The bad news was that
these were cabled for connection with the TI-74 Basicalc Calculator (with a 10
pin single line female connector) as opposed to the 8 pin double row Hex-Bus
adapter. Another "good news" item was that he had (as also does L.L. Conner,
1521 Ferry Street, LaFayette, IN 47904 {telephone 317-742-8146}) an adapter
cable which on one end has a TI-74 "Dock-Bus" 10 pin single line female plug
and on the other end has a CC-40 Hex-Bus style (double row) 8 pin Male plug.
Upon hearing that these were compatible with the CC-40, I purchased a QuickDisk
drive and an adapter cable.
The problem was how to connect the female plug from the QuickDisk to the
female plug of the adapter cable. I found that a workable solution was to cut
resister leads into appropriate lengths (13 millimeters) and insert these into
one of the female plugs. I then plugged this (newly male) connector into the
other female plug such that the tab on the side of one plug was OPPOSITE (not
on the same side as) the tab on the side of the other plug. The 8 pin male
Hex-Bus part of the adapter cable is set in epoxy in a cup such that connection
with the standard Hex-Bus cable is possible in only one way, eliminating
possible confusion. The other end of the standard Hex-Bus cable plugs into the
last of the daisy chain eminating from the CC-40. Voila! It WORKED! I was
gratified to find that the QuickDisk performed as expected and was reliable.
The manual supplied with the QuickDisk is obviously translated from another
language (German) and I found certain parts intriguing. Apparently there were
two models made: 01 for the CC-40 which is a top-loader, 6 volt (600 ma) power
requirement (no batteries), 8 pin hexbus cabling compatible, 1.2 Kg. unit which
answers as Device number 8. Version 02 was described as a front-loader, 7.5
volt (400 ma) power requirement (supplied by 5 aa alkaline batteries!), cabled
to a 10 pin Dock-Bus female plug for connection to the TI-74 Basicalc, 0.8 Kg.
unit which was supposed to be Device number 9. My QuickDisk was not marked by
any manufacturers markings (model or serial numbers) but appeared to be a top
loading (QuickDisk 01, Hex-Bus unit #8) unit which was (curiously) cabled to
connect as a QuickDisk 02 (for the TI-74). I haven't had the courage to
disassemble the unit ("don't mess with it if it WORKS") to see what native
connections and conditions are present, but it might be interesting at some
future time.
In the absence of Wafertape drives for us CC-40 owners, the QuickDisk
appears to be the ONLY AVAILABLE mass storage device; even though the only
remaining QuickDisks are cabled for the TI-74, I can thankfully speak from
personal experience that they WILL WORK for the CC-40.
For more extensive explanation of the workings of the QuickDisk with the
CC-40, please refer to Charles Good's excellent review in the November 1990
(Vol 6 No. 9) Lima Ohio 99/4a Users Group Newsletter ("Bits, Bytes & Pixels")
whose mailing address is Box 647, Venedocia, OH 45894.
=========================================================================
C4ICS029
Content-Type: TEXT/plain; SizeOnDisk=5394; name="SORTING.TXT"; CHARSET=US-ASCII
Content-Description: SORTING.TXT
Originally published December 1992, Lima newsletter
A PROFESSIONAL EDUCATOR'S SORTING PROGRAM FOR THE CC40
by Charles Good
Lima Ohio User Group
A common activity among educators is assigning letter
grades to student multiple choice exams that have numerical
scores, converting the numerical scores into grades of A B C
D and E. If this is done by strictly following
predetermined mathematical standards (such as 90% and
above=A, 80-89%=B, etc) students may find their scores near
one of the borderlines and decide "Gee, if I can talk the
instructor into giving me one or two more points I can raise
my grade one whole letter." This situation is not really
fair to the students because the difference between one
letter grade and another is significant, and should not be
based on just one or two exam points. One way for the
instructor to avoid this situation is to use predetermined
mathematical standards only as guidelines, arrange the exam
scores of the students in numerical order (from greatest to
least), and assign letter grades by setting the lines of
demarcation between A/B, B/C, C/D, and D/E where large gaps
exist in the point spead of the students' scores. This
makes it difficult for students to successfully nag the
instructor into awarding enough additional exam points to
raise the exam's letter grade significantly.
The following CC40 program will sort randomly entered
numbers into numerical order and/or a list of randomly
entered words or names into alphabetical order. I use it to
aid me in assigning letter grades to my students' exams.
When prompted by the program, I enter the raw numerical exam
scores in any order. The computer then sorts these scores
into numerical order and prints to a printer or displays on
screen the sorted list along with the mean and median
calculated from all the scores. The printer routine is set
up for the HexBus printer/plotter, but by changing the
device number in the OPEN statement from 10 to some other
number you can use almost any printer.
You can also use this program to sort a list of names
alphabetically. Teachers often have to do this for their
classes several times early in the semester as students
continue to add and drop classes causing almost daily
changes in class rosters. Just enter names, last name
first, in any order. The computer will then print or
dislplay on screen the name list sorted alphabetically.
It is particularly easy for teachers to use the CC40 for
these purposes rather than a desktop computer. The small
size and battery power source of the CC40 allows the teacher
to bring the CC40 into the classroom, faculty lounge,
office, or home, wherever exam grading is most convenient.
90 REM CC40 BASIC, rewritten by Charles Good
from a PD 99/4A program.
100 DIM G(150),C$(150)
110 Z=1
120 PRINT " ALPHA NUMERIC SORT":PAUSE 2
130 INPUT "Type C for char, N for number";W$
140 IF W$="N"THEN 660
150 IF W$="n"THEN 660
160 IF W$="c"THEN 180
170 IF W$<>"C"THEN 130
180 INPUT "Enter an END OF LIST code";S$
190 PRINT "Now begin entering data.":PAUSE 1
200 PRINT "Press <ENTER> after each entry,":PAUSE 1
210 PRINT "When finished enter stopcode.":PAUSE 1
220 N=N+1
230 INPUT C$(N)
240 IF C$(N)<>S$THEN 220
250 N=N-1
260 L=INT(N/2)+1
270 N1=N
280 IF L=1 THEN 320
290 L=L-1
300 A$=C$(L)
310 GOTO 360
320 A$=C$(N1)
330 C$(N1)=C$(1)
340 N1=N1-1
350 IF N1=1 THEN 490
360 J=L
370 I=J
380 J=2*J
390 IF J=N1 THEN 430
400 IF J>N1 THEN 460
410 IF C$(J)>=C$(J+1)THEN 430
420 J=J+1
430 IF A$>C$(J)THEN 460
440 C$(I)=C$(J)
450 GOTO 370
460 C$(I)=A$
470 GOTO 280
480 C$(1)=A$
490 C$(1)=A$
500 PRINT "Here is the sorted list.":PAUSE 1
510 INPUT "P = printer, S = screen";Y$
520 IF Y$="S"THEN 610
530 IF Y$="s"THEN 610
540 IF Y$="p"THEN 560
550 IF Y$<>"P"THEN 510
560 OPEN #1,"10",OUTPUT
570 FOR I=1 TO N
580 PRINT #1,C$(I)
590 NEXT I
600 CLOSE #1:GOTO 640
610 FOR I=1 TO N
620 PRINT C$(I),"Press ENTER":PAUSE
630 NEXT I
640 INPUT "End of list. Press ENTER.";Y$
650 RUN
660 INPUT "Enter an END OF LIST number.";S$
670 IF SEG$(S$,1,1)<"0"THEN 690
680 IF SEG$(S$,1,1)<="9"THEN 700
690 PRINT "Please type a POSITIVE NUMBER":PAUSE 1:GOTO 660
700 S=VAL(S$)
710 PRINT "Now begin entering data":PAUSE 1
720 N=N+1
730 INPUT G(N)
740 IF G(N)<>S THEN 720
750 N=N-1
760 L=INT(N/2)+1
770 N1=N
780 IF L=1 THEN 820
790 L=L-1
800 A=G(L)
810 GOTO 860
820 A=G(N1)
830 G(N1)=G(1)
840 N1=N1-1
850 IF N1=1 THEN 980
860 J=L
870 I=J
880 J=2*J
890 IF J=N1 THEN 930
900 IF J>N1 THEN 960
910 IF G(J)>=G(J+1)THEN 930
920 J=J+1
930 IF A>G(J)THEN 960
940 G(I)=G(J)
950 GOTO 870
960 G(I)=A
970 GOTO 780
980 G(1)=A
990 M=INT((N+1)/2)
1000 FOR I=1 TO N
1010 AV=AV+G(I)
1020 NEXT I
1030 AVERAGE=AV/N
1040 PRINT "Here is the sorted list.":PAUSE 1:INPUT
"P = printer, S = screen";Y$
1050 IF Y$="s"THEN 1140
1060 IF Y$="S"THEN 1140
1070 IF Y$="p"THEN 1080:IF Y$<>"P"THEN 1040
1080 OPEN #1,"10",OUTPUT
1090 FOR I=1 TO N
1100 PRINT #1,G(I)
1110 NEXT I
1120 PRINT #1,"Median =";G(M):PRINT #1,"Average =";AVERAGE
1130 CLOSE #1:RUN
1140 FOR I=1 TO N
1150 PRINT G(I),"Press ENTER":PAUSE
1160 NEXT I
1170 PRINT "End of list. Press ENTER.":PAUSE
1180 PRINT "Median =";G(M);" Average =";AVERAGE:PAUSE
1190 RUN
============================================================================
C4ICS030
Content-Type: TEXT/plain; SizeOnDisk=1971; name="SUPPLEMN.TXT"; CHARSET=US-ASCII
Content-Description: SUPPLEMN.TXT
October 1990
T.I.'S SUPPLEMENTARY HANDOUTS RELATING TO
THE 99/4A AND CC40
Andy Frueh wrote T.I.'s consumer relations department recently and
asked them to send him all available free information about the 99/4A.
He received a whole bunch of stuff, much of which I did not know
existed. Some of the following is interesting from an historical
viewpoint. Material includes press release product descriptions, user
guide addenda, and some useful programs and technical information.
Everything is hardcopy. THE LIMA USER GROUP WILL XEROX THIS STUFF FOR
ANY MEMBER OR OTHER USER GROUP for $0.04 per page plus postage. A
short description of these items is given below, with the number in
parenthesis indicating number of pages. Quoted material is taken
directly as a quote from the described hardcopy. All programs and
technical information bears this notice:
"This material is given to you by Texas Instruments Incorporated
without representation or warranty of any kind. Therefore, we assume
no responsibility and shall have no liability, consequential or
otherwise, of any kind arising from its use. This material was
developed by and is considered the property of Texas Instruments. We
therefore reserve the right to use, publish, reproduce, or sell this
material in any manner desired without compensation of any kind."
For the CC40 we have a package of software descriptions of CC40 solid
state software cartridges. Programs and subprograms on each of these
modules are described in a fair amount of detail (9 pages for the
whole thing):
--ADVANCED ELECTRICAL ENGINEERING LIBRARY
--MATHEMATICS 1
--STATISTICS LIBRARY
--FINANCE LIBRARY
--MEMO PROCESSOR WITH DATA COMMUNICATIONS
--CC40 PASCAL
--GAMES I
--GAMES II
==============================================================================
C4ICS031
Content-Type: TEXT/plain; SizeOnDisk=15467; name="SYSTEM.TXT"; CHARSET=US-ASCII
Content-Description: SYSTEM.TXT
September 1990
T.I.`S "COMPACT COMPUTER 40" AND IMPORTANT PERIPHERALS ARE ALIVE AND
WELL
by Charles Good
Lima Ohio User Group
The CC40 was, in early 1983, T.I.`s first and maybe only entry into
the laptop computer market. It is battery powered. Anything entered
into the CC40`s RAM stays there even after the computer is turned off.
Four alkaline AA cells are said to provide enough power for 200 hours
of operation and many more hours of "computer off" time. The CC40 can
also be powered with an AC adapter. I had long assumed that the CC40
was abandoned by T.I. a few months after its introduction, even before
BLACK FRIDAY, and that the CC40 and its Hex Bus peripherals were no
longer available except sometimes as used items. I also was under the
impression that since T.I. never sold the promised WAFERTAPE DIGITAL
DRIVE, there was no way to save data or programs typed into the CC40
onto permanent magnetic media such as a disk or cassette tape. After
watching Gary Taylor`s CC40 presentation at the recent 1990 Lima MUG
Conference I discovered how wrong I was! The CC40 is no longer
available directly from T.I., but you get one NEW from L.L. Conner
Enterprise. Important HEX BUS peripherals and useful CC40 software
are available NEW directly from T.I. and from various dealers.
When it was introduced in 1983 the CC40 had a list price of $250. I
recently paid $95 for my new CC40. For an extra $25 I had dealer
installation by L.L. Conner Enterprise of the necessary chips to bring
the CC40`s internal RAM to the maximum 18K, up from the 6K RAM that
the CC40 normally comes with. This extra memory increases the CC40`s
internal buffer capacity to around five text pages (up from one text
page) when using the MEMO PROCESSOR word processing software
cartridge. Although T.I. never released it`s WAFERTAPE DRIVE, it
turns out that MECHATRONIC made a small "QUICK DISK" disk drive for
the CC40. MECHATRONIC is no longer in business, but you can still buy
one of these drives NEW, with a dealer warranty, for $110 from
T.A.P.E. of Ontario California. No controler cards or other hardware
are needed to hook this small drive directly to the CC40. The
original printing device made by T.I. for the CC40 prints on rolls of
adding machine paper. This HEX BUS PRINTER PLOTTER prints in 4 colors
and two font sizes. Its main limitation is the width of the paper it
uses. This device is still available new from dealers. What I didn`t
know before Gary Taylor`s presentation was that T.I. also made a
battery (or AC adapter) powered 80 column HEX BUS printer called the
"PRINTER 80". This printer uses small ribbon cartidges to print on
ordinary 8.5 inch wide typing paper or can print on rolls of 8.5 inch
wide FAX paper without the ribbon cartridge. T.I. will be glad to
sell you one of these printers NEW for $70. That`s right folks, a new
80 column printer for only $70! What you are reading now has been
printed on a PRINTER 80. As with the MECHATRONIC disk drive, no
additional hardware is needed to connect this printer directly to the
CC40 and print documents. No, you can`t easily use this inexpensive
printer with the 99/4A. The MEMO PROCESSOR word processing cartridge
is still available new directly from T.I. for $20. Thus, for $320 +
tax and shipping (since T.I. is registered to conduct business in most
states, T.I. will charge you local sales tax even if you purchase T.I.
products mail order from Texas) you can purchase a small, complete,
portable (capable of battery operation except for the disk drive),
word processing and printing package that includes a very powerful
computer. The portability of such a system is illustrated by the fact
that I am typing part of this article with the CC40 sitting in my lap
while on an overnight Cub Scout camping trip with my 9 year old son.
Why am I writing this article for publication in a newsletter devoted
to the T.I. 99/4A home computer? The CC40 uses a different
microprocessor than the 99/4A, with a different assembly language
instruction set. However the editor assembler manual of the CC40
describes how to convert CC40 assembly code so that it can be
understood by the 99/4A microprocessor, and T.I. once made a hardware
device that does just that! If I had the rare and never officially
released 99/4A HEX BUS INTERFACE, I could load this article or any
CC40 program or file from my CC40 into my 99/4A for display on a
monitor and processing with Funnelweb or T.I. Extended Basic. The
back of the box that contained my gray plastic 99/4A has a nice
picture of this HEX BUS INTERFACE connected to a 99/4A console. Don`t
I wish! If anyone reading this article has one of these interfaces
they are willing to sell me, PLEASE let me know. In this series of
articles I will first describe the CC40 and then go on to describe the
80 column printer, the MECHATRONIC "QUICK DISK" drive, the printer
plotter, the wafertape drive, and word processing using MEMO
PROCESSOR, all of which I own.
The CC40 measures about 9x6x1 inches, the size of a small textbook.
It uses a 2.5MHz TMS70C20 8-bit processor and has 34K of ROM and 6K
(expandable to 18K internally) CMOS RAM. The RAM can be expanded
beyond 18K up to 34K with a plug in 16K memory expansion cartidge.
The ROM includes a very powerful "Enhanced Basic" which is quite
similar to TI Extended Basic for the 99/4A. Both upper and true lower
case letters (not just small upper case letters) are provided. Error
and system messages can be displayed in either English or German.
I have no idea what the "40" in CC40 refers to, certainly not the
CC40`s display. The LCD display shows 31 characters of a single 80
character line. You can scroll or window left/right to view the
entire line. Four dedicated cursor keys allow you to scroll up/down
to view other lines or left/right within a line of text or program
code. The LCD display includes special indicators for such things as
low battery, the status of the shift function and control keys, upper
case lock, and special math functions. Some LCD display indicators
are user programmable. A control on the left side of the CC40
regulates the contrast (intensity) of the LCD display.
The CC40`s keyboard consists of chicklet keys. Alpha numeric keys are
arranged in a 44 key qwerty typewriter layout with number keys on the
top row, looking very similar to the 99/4A key arrangement. No, you
can`t easily touch type. The alpha keys are just too close together.
One finger pecking is the usual method of laptop data entry while
holding the CC40 steady with your other hand. It is usually not ever
necessary to press two keys at once. For those features such as one
time capital letters that require the use of the SPACE, FN (function),
or CTL (control) keys, you press the special key first and an
indicator on the LCD display turns on. You then press the second key
(for instance SHIFT and then D to display an upper case "D", or FN and
then ~ for insert), and the special LCD display indicator turns off.
A separate numeric keypad is to the right of the qwerty alphanumeric
keys. The number keys on the top row of the qwerty layout are
duplicated in this keypad. Special keys are included for cursor
movement (4 dedicted keys), BREAK, RUN, ON, OFF, and reset.
The BASIC that comes as standard equipment on the CC40 closely
resembles T.I. Extended Basic, but lacks most of the T.I.`s graphic,
color, and sound features. There are no sprites and only one kind of
programmable BEEP. Multi line statements up to 80 characters in
length are supported, as are user defined subprograms with variables
independent of the main program. Seven, and only seven characters
(ASCII 0-6), can be user defined with CALL CHAR on a 5x8 pixel grid.
CALL`s relating to assembly code include POKE, LOAD (an assembly
subprogram from an external device), PEEK, and EXEC (starts an
assembly language program). Two dimensional arrays are supported.
Typing BASIC code into the CC40 is made easier with automatic line
numbers (NUM) as in TI extended basic. DELETE will delete one line
number or a specified group of line numbers from the middle of a BASIC
program. You can type the words for BASIC functions and commands with
the alpha keys one letter at a time. Many BASIC commands and
functions can also be displayed on screen by pressing only 1 or 2
keys. A plastic keyboard overlay that comes with the CC40 shows these
special keypresses, most of which involve pressing the CTL or FN key
followed by another key.
A particularly powerful feature you can access from command mode or
from a running BASIC program is CALL DEBUG, which brings up a built in
assembly language monitor and memory manager. This is designed to be
used with the CC40`s Editor Assembler Module, but can be used by
itself. When in the DEBUG monitor you can display, modify, or copy
any memory in hex. You can also change the microprocessor`s program
counter, stack pointer, and status register. You can set break
points, single step through assembly code, start execution at a given
address, and control paging in and out of system ROM and cartridge
ROM. DEBUG is very powerful, and it is built into the CC40 for use
whenever needed.
User defined hot keys can be set up, and remain in battery backed
memory even after the CC40 is turned off. FN + 1-9 are the potential
hot keys. These can, for example, be set up for commonly entered
BASIC code, number sequences used in math calculations, or short text
memos such as names and addresses.
You can use the CC40 as a scientific calculator by typing in your
calculations directly rather than writing a BASIC program to do the
calculations. The separate numeric keypad makes data entry easy. You
can type in a string of calculations up to 80 characters long, press
<enter> to display the answer, and then use the displayed answer as
the starting point for more calculations. Or, when an answer is
displayed you can press PLAYBACK (FN/up arrow) to redisplay the
calculation that gave the answer. Calculation accuracy is 13
significant figures, with 10 significant figures usually showing on
the CC40`s display. Scientific notation is supported, allowing the
CC40 to deal with numbers as small as +/-1E-128 or as large as
+/-9.9999999999999E+127. PI, SQR, any other power or root, log (base
10, and base E), sine, cosine, tangent, arcsine, arccosine, and
arctangent are all supported with special keypresses. Angles are
calculated in either degrees, radians, or grads. A special indicator
on the LCD display (DEG, RAD, or GRAD) shows which kind of angle is in
effect. RAD is the powerup default. You could easily spend $30 for a
hand held scientific calculator, and you would still not have a 31
column display or a scrolling 80 column data field. For a few more
dollars you can have a new CC40, which is a real programmable computer
and not just a calculator.
A modern product, almost the same physical size as the CC40, is
described in the June 1990 issue of CONSUMER REPORTS. The ATARI
PORTFOLIO computer has 128K RAM, built in word processing,
spreadsheet, and address book software, and can be used as a
sophisticated calculator. Unlike the CC40, the PORTFOLIO is not user
programmable in BASIC. It only runs its built in software. The
display shows eight 40 column lines. Batteries are good for only 39
hours of powerup time. Commenting on the typewriter like keyboard
with no numeric keypad, CU says: "Touch typists will be reduced to
hunt and peck- good enough for spreadsheets perhaps, but not for
writing anything longer than a note." Price? -$400 plus $50 for a
printer interface. It seems to me that the much cheaper CC40 is in
most respects comparable to or better than the ATARI computer. CU
recommends a regular laptop computer over the ATARI PORTFOLIO. CU
says, "We`ve seen some advertised for less than $600." Comparing price
and features makes the CC40 looks like a good bargain.
Sources of hardware and software: Phone first to check shipping
charges and product availability.
L.L. Conner Enterprise
1521 Ferry St. Lafayette Indiana 47904
Phone 317-742-8146
A source of new and used CC40s, Hex Bus peripherals, and cartridge
software. They will upgrade CC40s from 6K up to 18K of internal RAM.
T.A.P.E.
1439 Solano Place, Ontario California 91764, U.S.A.
Phone 714-989-9906
This is the only source for new MECHATRONICS disk drives for the CC40.
This device is the only readily available mass storage device for the
CC40.
T.I. Accessory Department
P.O. Box 53, Lubbock Texas, 79408.
Phone 806-747-1882
You should probably phone before ordering in order to get the correct
part number. T.I. accepts credit card orders over this phone line.
The following are available new for the CC40:
-- AC adapter, model AC9401, output 6V, 1A. $18.95. This can be used
to power the CC40 or most of the other the Hex Bus peripherals
including the MECHATRONICS drive and the PRINTER 80.
-- Book: LEARN BASIC: A GUIDE TO PROGRAMMING THE TEXAS INSTRUMENTS
COMPACT COMPUTER. This is for beginners. The CC40 comes with an
extensive user`s guide that explains the CC40`s BASIC. Price $10.
-- 16K RAM expansion- $40. This cartridge contains RAM that can be
added to the CC40`s internal RAM to provide up to 32K total RAM.
-- 8K constant RAM- $30. This battery backed cartridge is sort of
like the 99/4A`s MINI MEMORY in that you can save programs or data to
this cartridge and then remove the cartridge from the CC40. It is an
alternative to a mass storage device.
-- PRINTER 80 full width Hex Bus printer- $70
-- Pascal cartridge- $20. Comes with extensive documentation.
-- MEMO PROCESSOR word processing- terminal emulator cartridge- $20.
-- FINANCE software cartridge- $20
-- ADVANCED ELECTRICAL ENGINEERING software cartridge- $20
-- STATISTICS software cartridge- $20
-- MATH software cartridge- $20
-- GAMES 1 software cartridge- $20
Jim Lesher
722 Huntley
Dallas TX 75214
214-821-9274
A nice selection of used CC40s, HexBus peripherals, and rare
documentation.
=============================================================================
C4ICS032
Content-Type: TEXT/plain; SizeOnDisk=8426; name="TEXTPROC.TXT"; CHARSET=US-ASCII
Content-Description: TEXTPROC.TXT
Originally published September 1992, Lima newsletter
AN IMPROVED BASIC WORD PROCESSOR
FOR THE CC40 AND TI-74
by Charles Good and Palmer Hanson Jr.
Lima Ohio User Group and TI PCC Notes
In the May issue of the Lima newsletter I (Charles)
published a BASIC word processing program for the CC40 and
TI-74 which used DATA statements to store text. This is
the only reliable way to store text in the battery backed
RAM of these computers when they are turned "OFF". This
was the first word processing program ever written for the
TI-74. The accompanying article described several
limitations to the program. Now thanks to efforts of
member Palmer Hanson, editor of TI PCC NOTES, these
limitations have been overcome. Our revised word
processing program with enhanced features is published
here.
Commas, quotation marks, leading spaces, and nicely
formated text cause no problems. The software includes
instructions in the form of a sample document which can be
viewed from within the running program. The use of quoted
DATA statements to store text allows easy placement of
commas within the text and the insertion of leading spaces
at the beginning of each paragraph, things that couldn't be
done with my original program. It is interesting that the
blank DATA lines with a pair of quotes (125 DATA "") used as
a template to store text in our revised program occupy no
more memory than the unquoted blank DATA lines (eg.^125
DATA) used in our original program.
Palmer has written a really marvelous text formatting
routine that eliminates some of the usual limitations of
word processing in BASIC. With Palmer's routine you always
get neatly formatted paragraphs with a maximum line width
of your own choosing and with no splitting of words between
lines. You can insert or delete text, even adding new DATA
lines between existing DATA text lines as was done in lines
37 and 43 of the program listing. The length of each text
DATA line is unimportant. You always get nicely formatted
paragraphs. Note for example lines 37 and 43 of the program
listing and compare them to the formatted program
instructions that are at the end of article. Perhaps the
only thing Palmer's routine won't do is right
justification.
The program allows you to view either the instructions
or your document on the CC40 or TI-74's one line 31 column
screen. Successive screens of text are displayed with
proper word wrap, not splitting words between screens of
text. Most important of all the program allows you to
print to any printer or dump text to a 99/4A or MS-DOS
computer. You need the TI-74 PC Interface Cable or the
HexBus RS232 to dump to another computer. When printing or
dumping you are asked for a maximum line width and a left
margin column. These two options let you print or dump
centered or uncentered text formatted to any line width up
to 80 columns.
I use this software on my TI-74 for "do it anywhere"
writing. Later I usually dump my document directly into the
Funnelweb text editor running on my 99/4A for printing and
disk storage. This article is being written on a TI-74
using our word processing program.
In some respects our program is BETTER than "MEMO
PROCESSOR", TI's cartridge word processing software for the
CC40. When sending text to another computer, our program
doesn't drop the last line of text. MEMO PROCESSOR does.
Also, with MEMO PROCESSOR if you have a document in memory
you can't do ANY command mode calculating or BASIC
programming. Doing so destroys your document. With our
program your document in memory is safe and you can do
whatever you want in command mode. It has also been my
experience with the CC40 that marginally low battery power
will destroy a MEMO PROCESSOR document stored in memory,
well before the LOW battery indicator turns on. Not so with
our program. When LOW appears you have plenty of time to do
a quick battery change and preserve your document in
memory.
As a demonstration of the capabilities of our program,
below are the instructions contained in lines 5-75 of the
program, formatted by the program into lines with a maximum
width of 60 characters and sent to Funnelweb's text editor
running on a 99/4A. What you see is the unmodified output
of our program.
----------
Word processor for CC40 and TI-74 by Charles Good &
Palmer Hanson Jr., June 1992. Lines 5-75 are a sample
document. With HexBUS RS232 dumps ASCII text to any printer
or to TI WRITER on a 99/4A. Dumps to an MS-DOS computer
with TI's TI-74 PC Interface Cable.
To enter text type 100 and down arrow, position cursor
over second quotation mark in blank DATA line and type
text. When text fills a a line, end the line with a closing
quote, press down arrow, and continue entering text on the
next blank DATA line. Text in each DATA line should be
enclosed in a set of quotes. Quotation marks "WITHIN THE
TEXT" require special treatment, as in lines 45, 50, 60 &
70. For carriage returns type "CR" preceeded by a space
at the end of each paragraph, as in lines 20 and 60. To
To leave blank lines between paragraphs type "CR" alone on
a data line as in line 65.
If you get a MEMORY FULL error enter "DEL 5-75" to free
up enough memory to VIEW, PRINT, or SEND the document.
------------
5 DATA " Word processor for CC40 and TI-74 by Charles Good & Palmer Hanson"
10 DATA "Jr., June 1992. Lines 5-75 are a sample document. With HexBUS RS232"
15 DATA "dumps ASCII text to any printer or to TI WRITER on a 99/4A. Dumps"
20 DATA "to an MS-DOS computer with TI's TI-74 PC Interface Cable. CR"
22 DATA "CR"
25 DATA " To enter text type 100 and down arrow, position cursor over second"
30 DATA "quotation mark in blank DATA line and type text. When text fills a"
35 DATA "a line, end the line with a closing quote, press down arrow, and"
37 DATA "continue entering text on"
40 DATA "the next blank DATA line. Text in each DATA line should be enclosed"
43 DATA "in a set of quotes."
45 DATA "Quotation marks ""WITHIN THE TEXT"" require special treatment, as in"
50 DATA "lines 45, 50, 60 & 70. For carriage returns type ""CR"" preceeded by"
55 DATA "a space at the end of each paragraph, as in lines 20 and 60."
67 DATA "To leave blank lines between"
60 DATA "paragraphs type ""CR"" alone on a DATA line as in line 65. CR"
65 DATA "CR"
70 DATA " If you get a MEMORY FULL error enter ""DEL 5-75"" to free up enough"
75 DATA "memory to VIEW, PRINT, or SEND the document. CR"
100 DATA "Start of document"
105 DATA ""
110 DATA ""
125 DATA ""
(Insert here every 5 line numbers between 100 and 600 blank DATA lines each
followed by an opening and closing quote. DATA lines will contain the document)
590 DATA ""
595 DATA ""
600 DATA ""
1000 PRINT " DATA STATEMENT WORD PROCESSOR":PAUSE 2
1010 RESTORE:CODE=0
1020 INPUT "1=View 2=Print 3=Send 4=Inst. ";M$
1025 IF M$="4"THEN RESTORE
1030 IF M$="1"OR M$="4"THEN LW=31:GOTO 3030
1040 IF M$="2"THEN 3000
1050 IF M$="3"THEN 4000 ELSE 1020
3000 INPUT "Printer device number?";P$
3010 OPEN #1,P$,OUTPUT
3020 INPUT "Line Width?";LW:IF LW>80 THEN 3020
3025 INPUT "Left margin column? 0-79 ";LM
3030 PRINT$="":PW=0
3040 ON ERROR 5000
3050 READ TEXT$
3060 IF TEXT$=""THEN 3050
3070 TEXT$=TEXT$&" "
3080 X=LEN(TEXT$):Y=POS(TEXT$," ",1)
3090 IF X=0 THEN 3050
3100 ADD$=SEG$(TEXT$,1,Y)
3110 IF ADD$="CR "AND PW>0 THEN 3170
3120 IF ADD$="CR "THEN 3185
3130 IF (PW+Y)>LW THEN 3170
3140 PRINT$=PRINT$&ADD$
3150 TEXT$=SEG$(TEXT$,Y+1,X-Y)
3160 PW=PW+Y:GOTO 3080
3170 PRINT$=SEG$(PRINT$,1,PW-1)
3180 IF M$="2"OR M$="3"THEN N=N+1:PRINT TAB(5);"Sending Line";N;"of text"
3185 IF M$="1"OR M$="4"THEN PRINT PRINT$:PAUSE:GOTO 3205
3190 PRINT #1,TAB(LM);PRINT$
3200 IF CODE=32 THEN PRINT #1:CLOSE #1:N=0:LM=0
3205 IF CODE=32 THEN PRINT TAB(9);"End of document":PAUSE:RETURN 1000
3210 IF ADD$="CR "THEN TEXT$=SEG$(TEXT$,4,X)
3220 PW=0:PRINT$="":GOTO 3080
4000 OPEN #1,"20.D=8,P=N,R=C",OUTPUT,VARIABLE 80!HexBus RS232 toTIWriter on99/4A
4005 !OPEN #1,"100.FILENAME.DOC",VARIABLE 80,OUTPUT!PC interface cable to MS-DOS
4010 GOTO 3020
5000 !End of DATA routine
5010 CALL ERR(CODE,A)
5020 IF CODE=43 THEN CODE=32!Interpret CC40 error code as TI74 error code
5030 IF CODE<>32 THEN RETURN ELSE 3180
=============================================================================
C4ICS033
Content-Type: TEXT/plain; SizeOnDisk=24675; name="TI74.TXT"; CHARSET=US-ASCII
Content-Description: TI74.TXT
APRIL 1992
THE TI-74 "BASICALC": A MODERN 8K POCKET SIZED
REINCARNATION OF THE CC40 AND 99/4A
reviewed by Charles Good
Lima Ohio User Group
Why did TI suspend further HexBus product development and
stop selling the CC40 in late 1984 less than two years after
the CC40 introduction in January 1983? No, it probably
wasn't because TI's non release of the "didn't work very
well" Wafertape Digital Tape Drive left the CC40 without any
means of mass storage. TI had that problem solved with the
CC40+ which had a built in reliable cassette interface. But
the CC40+ was never released. Why? A probable answer to
these questions is that TI had something better up its
sleeve. In 1985 TI began selling the TI-74, a downsized
improved version of the CC40 with an optional cassette
interface. In 1992 these products are still available.
The TI-74 is "modern" in the sense that TI still actively
sells the product through dealers. Although first released
in 1985, my TI-74 user guides have a 1990 copyright
indicating TI's continuing support of the machine. The
TI-74 is a "reincarnation" of the CC40 and 99/4A in the
sense that its BASIC is very similar to TI Extended BASIC
for the /4A and almost identical to the BASIC used in the
CC40. Anyone familiar with Extended BASIC on the /4A will
have no trouble programmg the TI-74. The similarities
between the 99/4A and the TI-74 are so profound that both
the Lima Ohio user group and the Swedish user group have
members who own a TI-74 and DO NOT own a 99/4A. I have
typed in several games and application programs written for
the 99/4A into my TI-74 with very little modification.
Finally the TI-74 can be considered a "pocket" computer
because it measures only about 4x8x1 inches. You can carry
the thing around in your shirt pocket if you don't mind
having half the computer sticking out beyond top of the
pocket.
The TI-74 can best be described as a reduced sized CC40 with
more memory, a greatly enhanced set of scientific calculator
functions, and a slightly reduced suite BASIC commands
compared to the CC40. The keyboard layout of the TI-74 is
very similar to that of the CC40. Anyone familiar with the
key combinations of the CC40 will find the same keys,
usually in the same place on the keyboard, do the same
things on the TI-74. Typing FRE(0) on the TI-74 shows 7710
bytes of program space available for BASIC programs. On the
unenhanced 6K CC40 a FRE(0) shows 5730 bytes available to
BASIC.
PHYSICAL DESCRIPTION:
The TI-74 is powered by 4 AAA batteries or an optional AC
transformer. Most memory contents are preserved when the
computer is "OFF". Although TI makes no clains about how
long the batteries should last, my experience suggests
several tens of hours of "ON" time on a single set of
batteries and many more hours of "computer is OFF" time.
Unlike many "modern" laptop and palmtop computers, the TI-74
does not have battery eating features such as a backlit
display screen or a built in hard drive. Like the CC40 the
TI-74 has an LCD display that shows 31 5x7 pixel characters
of an 80 character line. You can scroll or window
left/right with arrow keys and can use the up/down arrow
keys to display adjacent lines. A contrast adjustment
allows viewing in most lighting situations.
The keyboard has slightly concave rectangular (chicklet
style) keys which provide a definite tactile response when a
keypress is detected. Keys are arranged in a manner
similar to, but not identical with, the CC40 keyboard. The
alphanumeric keys are arranged typewriter style with a large
<ENTER> key and (unlike the CC40) a shift key on BOTH sides
of the space bar. Cursor and other special purpose keys
(FN CT Mode Break Run) are lined up in a row above the
letter keys where one usually expects to find number keys.
The number keys form a numeric keypad to the right of the
letter keys along with large ON and OFF keys. Most keys
have at least two functions and many have more. For example,
the letter keys all have specific calculator functions in
CALC mode and in BASIC mode these same letter keys can be
used to display on screen most BASIC commands with just two
keypresses. Keys are closer together than on the CC40 so
touch typing is not possible. However two finger typing is
fairly easy. I am composing the first draft of this article
on my TI-74.
CALCULATOR MODE:
Pressing the MODE key while in BASIC command mode switches
the TI-74 to calculator mode. A total of 70 "scientific
calculator" functions are available by entering a number and
then pressing one or two keys to perform some action on the
number. CALC functions include linear regression,
permutations, regular and hyperbolic trig functions, a full
range of statistics, and much more. One interesting CALC
function allows you to enter angles in degrees as
degrees-minutes-seconds and have this converted to
degrees+decimals. Factorials up to 83 can be calculated by
just entering a whole number and then pressing the "n!" key.
An INV(erse) key will reverse the effect of most CALC
functions. For example pressing INV and TAN will yield the
ARCTAN of the displayed number.
Mathematical display and accuracy are identical to that of
the 99/4A and the CC40. Ten digits are displayed on screen
with internal calculations carried to 13 or 14 digits.
Large and very small numbers are displayed in scientific
notation.
As an educator, one feature of CALC mode I particularly
appreciate is STAT mode. I can enter a long list of student
test scores and then obtain statistical information such as
the median and standard deviation of these data. Other
statistics available once you enter a set of numbers (data)
include sum, sum of squares, number of data entries,
regression, line intercept and slope, and correlation
coefficient. Stastical data can be entered as single data
values (as I do for student grades) or paired values (such
as plots on a two dimensional graph).
BASIC programs as well as text assigned to "hot keys" (up to
10 hot keys each of which will recall from memory up to 80
characters of text and/or mathematical formulas) remain in
memory when in CALC mode and can be immediately recalled by
pressing the MODE button to enter BASIC mode. Stastical
data remain in memory when you switch from CALC to BASIC
mode and can later be accessed by going back to CALC. When
you turn the computer "OFF" and later turn it "ON" you are
returned to the mode you left when you pressed "OFF".
Memory contents (BASIC programs, the contents of "hot keys",
and stastical data) are all preserved when the computer is
"OFF".
BASIC MODE:
Except for lacking commands for user defined graphics,
speech, color, sprites, and sound, TI-74 BASIC is very
similar to TI Extended BASIC on the 99/4A. Keeping in mind
the limited screen display of the TI-74, 99/4A users should
have no trouble programming the TI-74. Although TI-74 BASIC
has a few fewer functions than CC40 BASIC the differences
between the two are minor. Most CC40 BASIC software
listings can be typed into the TI-74 with no modifications
at all and will run with no problems.
The following functions in CC40 BASIC are not available on
the TI-74:
-- BEEP (Used in the CC40 with DISPLAT AT. There is no
sound at all available on the TI-74).
-- ATTACH and RELEASE (A feature of CC40 subprograms I have
never actually actually seen used).
-- CALL CHAR (There are no user definable display
characters).
-- CALL INDIC (No user definable display indicators are
available).
-- CALL SETLANG (No alternative languages for text prompts.
All built in text prompts in the TI-74 and its software
modules are in English).
-- CALL VERSION (The version of BASIC is identical on all
TI-74's).
-- CALL CLEANUP (Instead you can remove from memory
variables not being used in the current program by SAVEing
to a non existant device).
-- There is no direct access to assembly language except for
CALL IO on the TI-74. Therefore the following CALL's of
CC40 BASIC are not available on the TI-74; GETMEM POKE PEEK
LOAD EXEC RELMEM and DEBUG.
The only important CC40 BASIC software I have that can't be
modified to work with the TI-74 are "DIR" programs designed
to read the directories of mass storage devices such as the
Wafertape drive and Quickdisk drive. These programs are
very useful because they give you the exact spelling of
program and data file names. You need the exact spelling to
load from these devices. The directory reading software
uses assembly CALL's not available on the TI-74. The only
other important assembly CALL known to me on the CC40 is a
CALL EXEC(xxxx) to deactivate the battery saving automatic
power down. The same thing can be done on the TI-74 by a
specific sequence of keypresses.
ACCESSORIES AND PERIPHERALS:
Standard equipment that comes with the TI-74 includes two
book length guides, a set of alkaline batteries, a plastic
hard case, and a quick reference card that fits into the
inside of the hard case's hinged lid. I really like the
hard case and keep my TI-74 in the case most of the time,
even when I am actively using the computer as I am now to
enter the text of this article. The case is very tough and
prevents accidental keypresses. The increased size of the
TI-74 plus case does, however, make it more difficult to
keep the computer in one's shirt pocket. If you open the
case lid all the way you can lean the TI-74 against a small
object at a convenient viewing/typing angle and position the
case lid over the object's top for stability. Right now as
I type this article I have my TI-74 resting against an
apple!
A cartridge port to the right of the display accepts a solid
state software or RAM cartridge. Available software
cartridges include LEARN PASCAL, STATISTICS, CHEMICAL
ENGINEERING, FINANCE, and MATHEMATICS. The capabilities of
these software cartridges are almost identical to cartridges
of the same name sold for the CC40 and the TI-95
programmable calculator. When I sent in my TI-74
registration card to TI, I received back a large color
brochure describing TI's custom module service for industry.
For about $100 per module TI offers to manufacture (burn
eproms for) custom TI-74 software modules taylored to a
customer's specifications. Specific examples of some custom
modules are described in the brochure.
For me the most useful TI-74 module is the battery backed 8K
RAM. A similar module exists for the CC40. You can save an
"image" of the TI-74's memory into the module, remove the
module, and later reinsert the 8K RAM and load its contents
back into the TI-74. Used this way the 8K RAM serves as a
mass storage device. You can also leave the RAM module in
the TI-74 and exchange the contents of the computer's memory
for what is stored in the module. You can thus keep two
different BASIC programs in the computer at the same time,
one in the RAM module and one in the computer's memory,
switching back and forth between the two. This memory
flip-flop trick is something you can't do with a CC40. You
can also use the 8K RAM as additional CPU memory by invoking
CALL ADDMEM. This makes about 15700 bytes of memory
available in BASIC instead of the the TI-74's normal 7710
bytes.
The TI-74 has a 10 pin peripheral connector TI calls the
Dock Bus. Available TI peripherals that fit this connector
include an AC adapter adapter (the "adapter adapter" plugs
into the TI-74 and TI's AC9201 AC adapter plugs into the
"adapter adapter"), a battery powered thermal printer, a
cassette tape recorder interface, and an MS-DOS computer
interface. I don't yet own any of these peripherals, so the
descriptions below are based on information published by TI
and on articles that have appeared in past issues of TI PCC
NOTES.
The PC-324 THERMAL PRINTER is set up as device #12 and uses
an unusual size thermal paper roll. You can either purchase
FAX paper and cut it to size with a hacksaw or pay $5 at a
dealer for a 3 roll pack of "official" paper. Sort of
reminds you of the paper "problem" with the 99/4's Thermal
Printer (TP)! The small PC-324 printer is about the same
length and width as the TI-74. It runs on batteries or an
optional AC adapter. Text is only 24 columns. There is
only one text font and there are no dot addressable
graphics. From CALC mode you can use the PRINT key at any
time to print the screen display. From BASIC mode you can
LIST programs or OPEN the printer in a program or from
command mode and print whatever you want.
The CI-7 CASSETTE INTERFACE CABLE allows you to use most
cassette audio recorders, even those that use mineature
cassettes, to save BASIC programs or data files to tape. It
appears to work the same way as the cassette interface of
the never released CC40 PLUS. Its operation also resembles
that of the Wafertape drive. You can save several files
sequentially on the same tape each with a different file
name. If you don't know the exact starting position of a
particular file the TI-74 can search the tape from the
beginning for a particular file name and when found load
that file. The TI-74 can also be programmed to load the
next file found on the tape irrespective of file name.
Screen prompts are available telling the operator to press
the recorder's PLAY, RECORD, and STOP buttons and the
computer automatically senses the beginning and end of the
requested file. You cannot use the CI-7 to save programs
from a CC40. Many have tried and failed to do this.
Apparently the TI-74 contains within it specific code needed
to operate the CI-7 cassette interface, code which is
lacking in the CC40.
The PC INTERFACE CABLE connects between the Dock Bus and the
25 pin parallel port of an MS-DOS computer. With this cable
you can use the TI-74 to directly control the MS-DOS
computer via several device numbers. Addressing device 14
lets you print using a parallel printer connected to the PC.
Device 45 lets you direct output from the TI-74 to the PC's
monitor for a nice 80 column multi line display. You can
save or load TI-74 programs to and from the PC's disk drives
by referencing device 100. Text in ASCII format can be
saved to the PC's drives with device 101. If you own an
MS-DOS computer this cable would seem to be a very useful
TI-74 peripheral. Can it be used with the CC40? I don't
know, but someone should find out. The PC interface may be
the mass storage solution for CC40 owners who cannot get
obtain a Quickdisk or Wafertape drive.
HEXBUS COMPATABILITY:
Superficially the 10 pin Dock Bus looks quite different from
the 8 pin HexBus. However, as first noted in 1990 in
articles published in TI PCC NOTES and later in an article
by Dan Eicher in the March 1992 issue of the Lima User Group
newsletter, the Dock Bus and HexBus are electronically
identical. Two extra Dock Bus lines not found in the HexBus
that allow an external 6 volt source to power the computer
or peripheral through the bus. By connecting the proper
wires of a HexBus cable to corresponding wires of a Dock Bus
cable ALL HEXBUS PERIPHERALS ARE COMPATIBLE WITH THE TI-74!
If you don't want to make your own cable you can buy one
from L.L. Conner for $15. Plug one end of the Conner cable
into the TI-74's Dock Bus and attach a HexBus cable to the
other end. With this HexBus/Dock Bus cable I have used my
TI-74 with the following HexBus peripherals: RS232, Printer
80, Printer Plotter, Wafertape Drive, and Quickdisk drive.
I much prefer to my use Printer 80 with my TI-74 rather than
the 24 column PC324 printer. Like the PC324 the Printer 80
can be run on batteries or an AC adapter. Unlike the small
hard to find expensive rolls of thermal paper used by the
PC324, the Printer 80 uses easily obtainable FAX paper rolls
or with a Thermal Ribbon obtainable from Sears or by mail
from TI regular sheets of typing paper.
MASS STORAGE AND CC40/TI-74 SOFTWARE COMPATABILITY:
With my TI-74 I can OLD SAVE and OPEN files to and from my
Quickdisk (device 8) with no problems at all. This is in
spite of the fact that I have the HexBus rather than the
Dock Bus version of the Quickdisk drive. All I need is the
HexBus/Dock Bus interface cable made by L.L. Conner. I know
of someone who uses a Dock Bus Quickdisk drive with his CC40
also with no problems. The few CC40 applications written
for the Wafertape drive assume this device is configured as
device #1. That's how I have always used my Wafertape Drive
with my own CC40. It is fortunate that the tape drive can
be switched to other device numbers because I can't
successfully use my Wafertape drive as device 1 with the
TI-74. The TI-74 expects the CI-7 cassette interface to be
device 1. If I switch my Wafertape drive to some other
device number (I use device 2) then I can OLD SAVE and OPEN
files to and from wafertapes with my TI-74.
I knew when I bought my TI-74 that the syntax of TI-74 BASIC
is almost identical to that of CC40 BASIC. I now know that
the similarities between the BASICs of these two devices are
more profound. Any BASIC program written on a CC40 and
saved to Quickdisk or Wafertape will successfully OLD into
the TI-74 and if the program doesn't use any of the BASIC
functions unique to the CC40 will RUN in the TI-74. Almost
my entire library of CC40 BASIC programs stored on disk or
wafertape will load RUN out of my TI-74! The two computers
use similar 8 bit central processor chips (TMS70C20 for the
CC40 and TMS70C46 for the TI-74) that use the same assembly
instruction sets and BASIC token codes.
GENERAL CONCLUSIONS; COMPARING THE CC40 AND TI-74:
The only reason for using for using small "notebook" or
"palmtop" computers such as the CC40 or TI-74 is portability
and/or ease of operation. The additional memory and better
displays of desktop computers mean that in general desktops
are more powerful. Software is available for desktops that
can accomplish anything that can be done with ROM cartridge
or BASIC software available for the CC40 and TI-74. There
is a lot to be said for portability! The ability to carry
the CC40 or TI-74 around with you and use them anywhere (a
classroom the office on a camping trip etc) is the raison
d'etre of these small computers. Unlike "modern" laptop
computers whose batteries usually last less than 4 hours per
charge these small TI machines last tens or a couple of
hundred hours of on time on a set of batteries. For use in
the field the TI-74 and CC40 and their battery operated
peripherals offer lots of convenience. For example, I am
typing this article while I lay in bed proped against a
couple of pillows. A few minutes ago I made a phone call
from the phone by my bed that required me to look up the
phone number. I have my name/address/phone data base stored
in my TI-74's 8K RAM cartridge, so I did a CALL GET(-1) to
store this article in the RAM cartridge and at the same time
put my data base in the TI-74's memory. I looked up the
number and made the call. Then I did another CALL GET(-1)
to bring back my document into memory and put my data base
back into the RAM cartridge.
ADVANTAGES OF THE CC40:
--1-Its CHEAPER. You can get one used for $55. Used TI-74s
are hard to find and a new one costs $100.
--2-CC40 BASIC is a bit more powerful.
--3-The KEYBOARD is physically larger and thus according to
some people easier to type on than the keyboard of the
TI-74.
--4-There is an assembly language word processing cartridge
called MEMO PROCESSOR available from TI for the CC40. No
commercial word processing software is available for the
TI-74. I am using a BASIC word processor program I wrote
myself to enter this article into my TI-74. MEMO PROCESSOR
is much better than my BASIC word processor.
ADVANTAGES OF THE TI-74:
--1-CALC MODE. Scientists, engineers, and educators will
appreciate the rapid availability of 70 scientific and
statistical functions on the TI-74. The same sorts of
calculations can be done in BASIC with the CC40 (and the
TI-74) by putting formulas into BASIC programs, but doing
the math directly from the keyboard is much easier and
faster.
--2-More user memory is available on the TI-74 than you get
in an unexpanded CC40.
-- 3-Physical size. The CC40 is just a little too big to
get your hand around and is slightly awkward to carry around
or hold in one hand. No matter how you carry the CC40 it
seems the keyboard overlays are about to fall off and your
gripping fingers have trouble finding a place where they
don't press some keys. In my opinion the TI-74 is much
easier to handle. You can easily and grasp the TI-74
with the fingers of one hand. The hard case prevents
dust accumulation, accidental keypresses, and the
accidental loss of the quick reference card (or the LEARN
PASCAL keyboard overlay). I feel very comfortable about
carrying my TI-74 around with me in my hand, in my briefcase,
or in my coat or shirt pocket just about everywhere I go.
Personally I have no more difficulty typing on the TI-74
keyboard than I do on the CC40. In both cases two finger
"must keep looking at the keyboard" is my technique. Touch
typing is not really possible on either machine.
--4-The DOCK BUS is physically superior to the HexBus.
Although the two bus designs are electronically identical
the HexBus is structurally flimsy. When inserting a HexBus
I/O cable into the bus on a CC40 or HexBus peripheral it is
hard to seat the cable properly. There is lots of "play" in
the HexBus opening and it is possible to bend some pins
in the bus as you fool around with inserting the I/O cable.
The HexBus cables themselves are flimsy. They are very
flexible and it is difficult to avoid pulling on the cable
rather than the small rigid cable end piece when removing an
I/O cable from the HexBus. The DockBus and its I/O cables
are more substantial. Cables fit snugly into the bus with
no free play and little likelyhood of bending a bus pin.
The cables are stiffer than HexBus cables and have large
easy to grasp ends. Physically the DockBus and its cables
seem more substantial and thus probably more reliable than
the HexBus.
The capabilities of the CC40 and TI-74 are similar. The
TI-74 is a better math calculator. The CC40 has a better
word processor but both can be used as calculators or text
processors. Because of the memory flip-flop capability of
the 8K RAM and for physical reasons I prefer the TI-74.
SOURCES OF TI-74 SUPPLIES:
Available by credit card directly from TI at
806-747-1882:
--HX1010 Printer 80, the 80 column HexBus printer, $70
--CI-7 Cassette interface $35
--PC324 Thermal printer $60
--Technical manual $5
--8K constant RAM cartridge $50
--Learn Pascal, Stastics, Mathematics, Finance, Chemical
Engineering software cartridges $50 each
--TP324 thermal paper and PC Interface cable also
probably available directly from TI, prices unknown.
Available from EDUCALC at 800-677-7001 or (credit card
orders only 24 hours) 800-535-9650
--TI74 (the topic of this article) $99.95
--Statistics, chemical engineering, finance cartridges
$39.95 each.
--8K constant RAM cartridge $39.95
--PC324 Thermal printer $89.95
--TP324 paper for printer $4.95
--CI-7Cassette interface $26.95
--PA201 AC interface for TI74 (the "adaptor adaptor",
uses adaptor below) $6.95
--AC9201 adaptor to power printer and/or TI94 $16.95
--PC interface cable, allows storage of TI74 software on
PC disks and use of PC screen controlled by TI74 $54.95
Available from L.L.^Conner Enterprise 1521 Ferry St.
LaFayette IN 47904, phone 317-742-8146
--Custom cable to connect HexBus peripherals to the TI-74s
DockBus, a special order item, $20
--Custom cable to connect HexBus RS232 to TI99/4A RS232
card, a special order item, $20.
--Various HexBus peripherals. Call for availability.
Available from T.A.P.E. 1439 Solano Place, Ontario
California 91764, phone 714-989-9906
--Quickdisk disk drives, either the DockBus version or the
HexBus version (with the L.L.^Conner cable) will work with
the TI-74.
Jim Lesher, 722 Huntley, Dallas Texas 75214, phone
214-821-9274
--nice selection of HexBus peripherals
=============================================================================
C4ICS034
Content-Type: TEXT/plain; SizeOnDisk=13579; name="WAFERTAP.TXT"; CHARSET=US-ASCII
Content-Description: WAFERTAP.TXT
November 1990
NEVER RELEASED OFFICIAL TI PERIPHERALS:
THE WAFERTAPE DIGITAL TAPE DRIVE
a hands on description by Charles Good
Lima Ohio User Group
The WAFERTAPE DIGITAL TAPE DRIVE was supposed to be a step up from
cassette data storage. The device is totally under the control of the
computer (no manual rewinding or keeping track of cassette counter
numbers). A directory on the tape allows the computer to
automatically advance the tape to the beginning of any desired file.
Recording data digitally (as 1 or 0, on or off) rather than as part of
a continuous spectrum of sound frequencies as is done on a regular
sound cassette recorder such as T.I.'s Data Recorder, was supposed to
be a more reliable way of recording and retrieving data. Had this
device been released in 1983 after its debut in January of that year,
it and the also never released HexBus interface would have formed an
inexpensive mass storage upgrade (compared to using a cassette
recorder) for the 99/4A at a time when a new full PE box (SSSD drive,
32K, disk controller) cost anywhere from $550-$1200. The last 99/4A
catalog published by TI in the fall of 1983 lists the Wafertape drive
for $139.95 and the HexBus interface for $59.95.
The wafertape drive was shown at the Consumer Electronics Show in
January 1983 together with the first showing of the CC40. It was to
be the major mass storage device for the CC40, and is described and
pictured in the user guides that come with most CC40 software and
peripherales. Unfortunately these user guides now also come with an
addendum sheet that states "The Wafertape Digital Tape Drive is not
available." The non release of the Wafertape Drive left the CC40
totally without a mass storage device until the 1986/1987 introduction
of the Mechatronic HexBus Quickdisk drive. This lack of a mass
storage device probably killed most consumer interest in the CC40.
I recently purchased for $100 a working Wafertape Drive, serial number
0000007, ATA3883. It is my understanding that the ATA number is a
date code, indicating in this case manufacture in the 38th week of
1983. Most 99/4A hardware and software modules have an ATA number.
If my understanding of ATA numbers is correct, my Wafertape Drive was
not one of those shown at the January 1983 exhibit. I personally know
of one other working Wafertape drive, serial number 0000095. I have
been told that there are about 10 or 11 working Wafertape Drives in
private hands and others that don't work.
The Wafertape Drive is comparable in size to other TI HexBus
peripherals, measuring about 11.5cm wide, 14.5cm deep and 3.5cm tall.
It is designed to be stacked with the HexBus RS232, modem, and
Printer/Plotter. It is battery powered with 4 AA cells. You can also
use an AC adapter. The front has an on/off switch and a slot for
inserting the wafertape. On the back are two HexBus ports, an AC
adapter jack, and a rotary switch for setting the device number. The
switch on mine has positions 0-9. However, only positions 0-7 work,
corresponding to devices 1-8. By accessing each HexBus peripheral
individually by number, a single CC40 could control up to 8 Wafertape
Drives, if one could somehow gather that many working drives together
in one place.
Wafertapes come in a cartridge measuring 68x40x5 mm, about as big as
the miniature cassettes sold these days for small tape recorders. The
top is clear plastic and the bottom is black plastic. T.I. calls
these cartridges "wafers". They fit easily and snugly into the slot
in the front of the Wafertape Drive. Inside the wafer a dark colored
magnetic tape 1.7mm wide (very thin) is wound in a continuous loop, in
the same manner as the tape of an "8 track" music cartridge. The tape
moves only in one direction and its ends are attached to each other
with a piece of reflective silver tape. T.I.'s last 99/4A catalog
lists 50 foot ($7.95), 25 foot ($6.95), and 10 foot ($5.95)
wafertapes. Five foot wafertapes are also mentioned in the Wafertape
User's Guide. Long tapes store more, but it takes longer to find the
beginning of a specific file. Official T.I. wafers have a little
sliding panel that covers the exposed part of the tape at the edge of
the wafer. This slides open as the wafer is inserted into the slot on
the Wafertape Drive. I have one such T.I. wafer and I also have some
wafers without a T.I. label and without the sliding panel. I wonder
who made these "generic" wafers?^^I do know that other wafertape
drives were planned or actually sold for other devices. A wafertape
drive for the Tandy 100 laptop computer is described in the March 1984
issue of Creative Computing. Also, see the comments below from Tony
McGovern about another wafertape device. Maybe my "generic"
wafertapes were not made specifically for the TI Wafertape Drive.
The method of write protecting wafers is unusual. When I first got my
Wafertape Drive I thought it was defective because I always got a
"write protected" error message whenever I tried to initialize a
wafer. I could find nothing resembling a write protect tab on my
wafers, and looking inside the Wafertape Drive slot revealed no
evidence of a mechanical pin associated with the "remove the tab and
it is write protected" system of protection typically found on most
audio and video tape cartridges. It turns out that you have to put a
"write enable" paper sticker at a specific location on the top of the
wafer in order to write to the wafer. Anything white will do. This
"write enable" piece of paper is OPTICALLY sensed from above by the
Wafertape Drive. In the absence of the sticker, the optical sensor
sees through the transparent wafer upper surface and does not get a
reflection off of the black wafer bottom. A second optical sensor
detects the silver end/beginning of tape marker. This marker is the
only reference point the wafertape drive has to tell the relative
position of everything else on the tape. On "8 track" continuous loop
music cartridges, the end/beginning of tape marker is detected
electronically. This silver marker on a wafertape is detected through
a window in the center of the wafer's transparent upper surface. If
the "write enable" sticker you are using is too big and covers this
window, then the wafer will not be usable as I finally figured out
after lots of frustration.
When you initialize a wafer with the FORMAT command of the CC40, the
tape is advanced until the marker is optically detected, and then the
Wafertape Drive prepares a new tape directory area at the beginning of
the tape. The entire tape is not magnetically encoded with FORMAT,
just the directory area. Software designed to directly read the
contents of a wafertape directory reveals that if a previously used
wafer is reFORMATted, the old file names are retained in the directory
area, but all file lengths are set to zero. The time required for a
FORMAT depends on how close the tape is to its beginning when FORMAT
begins. Even a 50 foot tape formats very rapidly if it is already
almost at its beginning.
A directory has room for 16 files irrespective of tape length. Of
course short tapes may not have enough room for 16 files if they are
of significant length. Files are written to the tape sequentially,
with the directory keeping track of the file name, number (0-15), and
length. Apparently the Wafertape Drive locates specific files by file
number, counting the End-Of-File indicators that pass by the
read/write head as the tape is advanced to the start of the desired
file. Only the last file can be overwritten by another file of the
same name. If you write a file with the same name as a file already
on the wafer that is not the last file on the wafer, the old file's
directory reference is deleted and the new file of the same is written
to fresh space after all the other files currently on the tape. (I
hope you understood that.) File types supported include PROGRAM, and
INTERNAL or DISPLAY data files. RELATIVE files are not supported, and
you can't open data files as APPEND. Although this is not made clear
in available documentation, I think that when data files are read from
wafertape, the entire file is read into computer memory for
manipulation by the controlling program and then later if necessary
written back to wafertape. This limits the size of data files. Only
one wafertape file can be opened at a time.
To compare the speeds of the Quickdisk and Wafertape drives, I timed
the SAVE and OLD of a 15300 byte text file from Memo Processor using a
newly FORMATed wafer and disk. Wafertape: SAVE, 4 min 25 sec; OLD; 3
min, 10 sec. Quickdisk: SAVE, 2 min 15 sec; OLD, only 38 seconds.
Why wasn't the Wafertape Digital Tape Drive ever officially released?
It just did not meet T.I.'s standards for reliability. It does not
work well on battery power. Even with four newly installed, fresh
alkaline AA batteries, you almost always get an I/O error 25 (low
batteries in peripheral) when you try to load something, and you often
get the same error when you try to SAVE while on battery power. The
Wafertape Drive only works with much reliability when operated with
the AC adapter. Apparently the speed at which the tape crosses the
Wafertape Drive's read/write head is critical, and variations in this
speed are not tolerated. With any battery, continuous power drain
results in a voltage decrease compared to the initial voltage put out
by the battery. Such a voltage decrease slows down the drive motor.
Also, as the Wafertape Drive operates it turns itself on and off
several times as it loads or stores data. Starting an electric motor
requires an immediate surge of extra current compared to the current
needed to keep the motor operating at constant speed once it has
started. It is possible that the Wafertape Drive's AA batteries are
not able to maintain constant voltage with all the required on/off
cycles. In addition to the battery problem, it is sometimes possible
to write data beyond the end of the wafertape and wipe out the
directory on the other side of the reflective end/beginning of tape
marker. This renders all files on the tape useless. I have managed
to overwrite the end of a wafertape on two occasions. At other times,
when I deliberately tried to do this, the CC40 would not let me write
past the end of a wafertape. I sometimes get I/O error 6 (device
error, try again) with the Wafertape drive for no reason I can
determine. Sometimes trying again doesn't work. I never get these
error messages when using my Quickdisk drive. Finally, I suspect that
wafertapes are not as durable as disks. The tape is very tiny and is
subject to a lot of physical movement and twisting as it moves within
the wafer. I suspect that with time the tape may break. I know for
example that I have had a higher percentage of my "8 track" music
tapes break compared to my reel to reel cassette music tapes. Let me
quote from a letter received recently from Tony McGovern of Australia,
senior author of FUNNELWEB. "Wafer-tapes were always a disaster area!
I think they appeared in one of Sinclair's UK machines. The other
place they appeared, also in the UK, was in an abomination produced by
ICL sold here, a computer phone -a combination of low end PC with
modem/phone all built in- but no disk drive, only the wretched
unreliable wafertape. Telecom Australia probably has a warehouse full
of these things that they would rather not be reminded of. They had a
great marketing campaign to sell these several years ago and no one
wanted the turkeys."
I do use my Waertape drive. It isn't that unreliable. I have a
little briefcase in which I can keep my CC40, the Wafertape Drive, my
HexBus printer/plotter, a power strip, and all the necessary AC
adapters all pluged in and ready to go. I can open the briefcase and
plug in the power strip and use the peripherals as they sit in the
briefcase. I can also use the printer/plotter and CC40 while still in
the briefcase using battery power, but I have given up trying to use
the Wafertape Drive with battery power. I keep my HexBus RS232 and
Quickdisk drive pluged in (these two devices both REQUIRE AC power)
next to my 99/4A. If possible, anything saved to wafertape ALSO
eventually gets save to disk with the Quickdisk drive, which I find to
be quite reliable.
=============================================================================
C4ICS035
The attached are all text files. They are listings of CC40 BASIC programs,
including the all important BASIC word processor. One of them is slightly
modified for the TI74 from a similar CC40 program. The DIR program is for
the Mechatronics disk drive and has been modified by me to run programs
directly from the disk directory. Unfortunately parts of the program are
unlistable and thus cannot be included in a text listing.
-------------------------------------
From: Charles W. Good
E-mail: cgood@.bright.net (Charles W. Good)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=10CHRSET.TXT; SizeOnDisk=496
Content-description: 10CHRSET.TXT
90 REM MAKES PRINTER/PLOTTER PRINT ITS CHAR SET
100 OPEN #1,"10",OUTPUT
110 FOR K=32 TO 47
120 PRINT #1,K;CHR$(K);" ";
130 PRINT #1,K+16;CHR$(K+16)
140 NEXT K
150 PRINT #1,CHR$(10)
160 FOR L=64 TO 79
170 PRINT #1,L;CHR$(L);" ";
180 PRINT #1,L+16;CHR$(L+16)
190 NEXT L
200 PRINT #1,CHR$(10)
210 FOR M=96 TO 111
220 PRINT #1,M;CHR$(M);" ";
230 PRINT #1,M+16;CHR$(M+16)
240 NEXT M
250 CLOSE #1
260 END
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=ADDRESS.TXT; SizeOnDisk=1263
Content-description: ADDRESS.TXT
90 REM written by Charles Good, Lima Ohio User Group, May 1991
100 PRINT " --NAME/PHONE/ADDRESS FILE--":READALL=0:PAUSE 1
102 !INPUT "READ ALL NAMES? Y/N ";YN$
104 !IF YN$="Y"THEN READALL=1:GOTO 120
106 !IF YN$="y"THEN READALL=1:GOTO 120
110 PRINT "USE UPPER CASE TO ":PAUSE .5
112 INPUT "ENTER DESIRED LAST NAME- ";INPUT$
120 READ FN$:IF FN$="END"THEN PRINT "END OF FILE":PAUSE 1:RESTORE 1000:GOTO 100
125 READ LN$,REST$:IF READALL=1 THEN 300
127 IF POS(LN$,INPUT$,1)=0 THEN 120
200 INPUT "Is the person "&FN$&" "&LN$&"? ";YN$
210 IF YN$="Y"THEN 300
215 IF YN$="y"THEN 300
220 GOTO 120
300 PRINT FN$&" "&LN$&" "&REST$:PAUSE
305 IF READALL=1 THEN 120
330 RESTORE 1000:GOTO 100
990 REM FIRST NAME,LAST NAME,OTHER INFORMATIN such as phone number and address
995 REM Use ONLY UPPERCASE in DATA STATEMENTS
1000 DATA JACK,SUGHRUE,508-476-7630 BOX 459 EAST DOUGLAS MA 01516
1075 DATA JIM,PETERSON,614-235-3545 156 COLLINGWOOD AVE COLUMBUS OH 43213
1090 DATA L.L.,CONNER,317-742-8146 1521 FERRY ST. LAFAYETTE IN 47904
1130 DATA -,MICROPENDIUM,P.O. BOX 1343 ROUND ROCK TX 78680
1215 DATA -,COMPETITION COMPUTER,414-672-4010 2219 S. MUSKEGO AVE MILWAUKEE53215
10000 DATA END
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=ARROW.TXT; SizeOnDisk=1530
Content-description: ARROW.TXT
10 REM ARROW GAME
20 REM BY STEPHEN GUTKNECHT, TIPCC NOTES V13N3P14
25 REM Press any key exactly when arrow hits target.
27 REM Delay factor is 1-99
30 REM 1/07/87
1000 WS=5! DEFINE TARGET LIMIT
2000 DISPLAY ERASE ALL,"Random Seed? 000";
2020 ACCEPT AT(14)SIZE(-3)NULL(0)VALIDATE(DIGIT),S
3000 DISPLAY ERASE ALL,"Delay for game?";
3010 PAUSE .5
3050 ON ERROR STOP
3060 ON BREAK STOP
3100 ACCEPT AT(17)SIZE(2)VALIDATE(DIGIT),GD
3210 ON BREAK ERROR
3500 GS=0
3510 GN=0
4000 S=S+1! Createdifferent seed for each game
4100 RANDOMIZE S
4500 KP=0
4510 TL=INT(((31-WS)*RND)+WS)+1
4600 RV=INT(2*RND)
4800 ON (RV+1)GOSUB 7000,7200
4900 DISPLAY ERASE ALL AT(TL),"*";
5000 DISPLAY AT(AL),AR$;
5010 PAUSE .7
5100 IF GD=0 THEN 5500
5200 L=FP
5210 DISPLAY AT(L-LC),AF$;
5300 DL=1
5310 CALL KEY(KEY,KP):IF KP THEN 6000
5320 IF DL=GD THEN 5400
5330 DL=DL+1
5340 GOTO 5310
5400 L=L+LC
5410 IF L=(TL+LC-RV)THEN 6100
5420 GOTO 5210
5500 L=FP
5510 DISPLAY AT(L-LC),AF$;
5520 CALL KEY(KEY,KP)
5530 L=L+LC
5540 IF L=(TL+LC-RV)THEN 6100
5590 GOTO 5510
6000 IF L=(TL-RV)THEN 6200
6100 DISPLAY ERASE ALL,"Lose..";
6120 GOTO 6500
6200 DISPLAY ERASE ALL,"Win!!!";
6210 GS=GS+1
6500 PAUSE .3
6510 GN=GN+1
6520 DISPLAY AT(10),"Score:";GS;
6530 DISPLAY AT(22),"Games:";GN;
6600 CALL KEY(KEY,KP)
6610 IF KP=0 THEN 6600
6990 GOTO 4500
7000 FP=2
7010 LC=1
7020 AL=1
7030 AR$=">"
7040 AF$="->"
7190 RETURN
7200 FP=29
7210 LC=-1
7220 AL=31
7230 AR$="<"
7240 AF$="<-"
7300 TL=(31-TL)+1
7390 RETURN
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=BARGRAPH.TXT; SizeOnDisk=540
Content-description: BARGRAPH.TXT
80 REM BAR GRAPH for printer/plotter
90 REM From TIPCC Notes v12n4p21 (1989)
92 REM enter up to 20 values between 0 and 21
95 REM Enter "E" or "e" to indiate end of data list
100 DIM X(20)
110 INPUT X$
120 IF X$="E"OR X$="e"THEN 200
130 K=K+1
140 X(K)=VAL(X$)
150 GOTO 110
200 OPEN #1,"10",OUTPUT
210 PRINT #1,CHR$(19)
300 FOR I=1 TO K
310 Y$=STR$(X(I)*10)
320 P$="L(0,0),("&Y$&",0),("&Y$&",-20),(0,-20),(0,0)"
330 PRINT #1,"O"
340 PRINT #1,P$
350 PRINT #1,"M(0,-21)"
360 NEXT I
400 PRINT #1,CHR$(17)
410 CLOSE #1:END
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=BRHYTHM.TXT; SizeOnDisk=2051
Content-description: BRHYTHM.TXT
900 REM Biorhythm, from TIPCC Notes v13n1p30 (1988)
1000 A$="Biorhythms":PRINT A$:PAUSE
11010 INPUT "Use Printer? Y/N ";Z$
1020 IF Z$="Y"OR Z$="y"THEN PN=1 ELSE 1100
1030 INPUT "Device Number? ";D$
1070 OPEN #1,D$,OUTPUT1080 IF D$="10"THEN PRINT #1,CHR$(18)
1090 PRINT #1:PRINT #1,A$:PRINT #1
1100 B$="Birthday ":T$="Today ":I$="(mmdd.yyyy)? ":IF PN=0 THEN PAUSE ALL
1105 DEG:Z=1:INPUT B$&I$;D$
1110 GOTO 1800
1115 DEG:Z=1:INPUT B$&I$;D$
1140 PRINT #PN,B$&" ";D$:IF PN=1 THEN PRINT #1
1145 E=X1150 Z=2:INPUT T$&I$;D$
1155 GOTO 1800
1190 PRINT #PN,T$&" ";D$:IF PN=1 THEN PRINT #1
1195 F=X1200 G=F-E1210 PRINT #PN,G;"days old"
1220 IF PN=1 THEN PRINT #1
1230 D$=" Days into cycle "
1240 P$=" % through cycle "
1250 M$=" Amplitude "
1300 PRINT #PN,"Physical Cycle:"
1305 X=G/23:X=X-INT(X):M=X:X=23*X
1310 X=X+.1:X=INT(X)1315 H=X:X=X/23:X=1000*X1320 X=INT(X):X=X/10:T=X
1325 GOSUB 1700
1400 PRINT #PN,"Emotional Cycle:"
1405 X=G/28:X=X-INT(X):M=X:X=28*X
1410 X=X+.1:X=INT(X)
1415 H=X:X=X/28:X=1000*X
1420 X=INT(X):X=X/10:T=X
1425 GOSUB 1700
1500 PRINT #PN,"Intellectual Cycle:"
1505 X=G/33:X=X-INT(X):M=X:X=33*X
1510 X=X+.1:X=INT(X)
1515 H=X:X=X/33:X=1000*X
1520 X=INT(X):X=X/10:T=X
1525 GOSUB 1700
1600 INPUT "Another solution (Y/N)? ";Z$
1605 IF Z$="Y"OR Z$="y"THEN 1610 ELSE END 1610 IF PN=1 THEN 1090 ELSE 1100
1700 IF PN=1 THEN PRINT #1
1705 PRINT #PN,D$;H
1710 IF PN=1 THEN PRINT #1
1715 PRINT #PN,P$;T
1720 IF PN=1 THEN PRINT #1
1725 M=INT(1000*SIN(360*M))/1000
1730 PRINT #PN,M$;M
1735 IF PN=1 THEN PRINT #1
1740 RETURN
1800 X=VAL(D$):B=X:GOSUB 1950:X=0
1805 GOSUB 1950:IF X<A THEN 1900
1810 X=X-INT(X):B=B-X:X=10000*X
1815 D=X:GOSUB 1950:X=B:X=X/100:B=X
1825 X=X-INT(X):B=B-X:X=100*X:C=X:IF X>=A THEN 1900
1830 X=13:GOSUB 1950:X=B:IF X>=A THEN 1960
1835 X1=365*D+C+31*B-311840 X=3:GOSUB 1950:X=B:IF X>A THEN 1960
1845 D=D-11850 X=X1+INT(D/4)
1855 X1=INT(D/100)1860 X1=.75+.75*X1
1865 X1=INT(X1)1870 X=X-X1
1895 ON Z GOTO 1140,1190
1900 E$="Entry error: try again (Y/N)?"
1910 INPUT E$;E$
1920 IF E$="n"OR E$="N"THEN 1999
1930 ON Z GOTO 1
1999 REM
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=CALENDA2.TXT; SizeOnDisk=1484
Content-description: CALENDA2.TXT
90 REM PRINTS CALENDAR ON ANY PRINTER
100 DIM Q(12),C$(5)
110 DATA 31,28,31,30,31,30,31,31,30,31,30,31
120 FOR I=1 TO 12:READ Q(I):NEXT I
130 DATA "JANUARY ","FEBRUARY ","MARCH ","APRIL ","MAY ","JUNE "
140 DATA "JULY ","AUGUST ","SEPTEMBER","OCTOBER ","NOVEMBER ","DECEMBER "
150 INPUT "ENTER MONTH (1-12) ";M
151 PRINT "PRINTER NAME ?"
160 IF M<1 OR M>12 THEN 150
170 INPUT "ENTER YEAR (>1582) ";R
180 IF R<1583 THEN 170
190 IF R-4*INT(R/4)=0 THEN Q(2)=29
200 IF R-100*INT(R/100)=0 THEN Q(2)=28
210 IF R-400*INT(R/400)=0 THEN Q(2)=29
220 R1=R-1:R2=R+INT(R1/4)-INT(R1/100)+INT(R1/400)
230 FOR I=0 TO M-1:R2=R2+Q(I):NEXT I
240 D1=R2-7*INT(R2/7)
250 RESTORE 130:FOR I=1 TO M:READ M$:NEXT I
255 INPUT "PRINTER NAME ? ";PR$
260 OPEN #1,PR$,OUTPUT
265 PRINT #1,CHR$(4)
270 PRINT #1,TAB(3);M$;" ";R
280 PRINT #1,CHR$(18);
285 PRINT #1,CHR$(2)
290 PRINT #1," SUN MON TUE WED THU FRI SAT"
300 PRINT #1
310 C$(0)=RPT$(" ",D1)
320 FOR I=1 TO (7-D1):C$(0)=C$(0)&" "&STR$(I)&" ":NEXT I
330 PRINT #1,C$(0)
340 C$(0)="":C$(4)="":C$(5)=""
350 I=8-D1
360 FOR K=1 TO 5
370 IF K=1 THEN C$(K)=" " ELSE C$(K)=" "
380 FOR L=1 TO 7
390 IF I>8 THEN B$=" " ELSE B$=" "
400 IF L=7 THEN B$=""
410 C$(K)=C$(K)&STR$(I)&B$
420 I=I+1:IF I>Q(M)THEN 450
430 NEXT L
440 NEXT K
450 FOR I=1 TO 5:PRINT #1:PRINT #1,C$(I):NEXT I
460 PRINT #1
470 CLOSE #1:GOTO 150
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=CALENDAR.TXT; SizeOnDisk=1193
Content-description: CALENDAR.TXT
90 REM PRINTS CALENDAR ON PRINTER PLOTTER
100 DIM Q(12)
105 DATA 31,28,31,30,31,30,31,31,30,31,30,31
110 FOR I=1 TO 12:READ Q(I):NEXT I
115 DATA "JANUARY ","FEBRUARY ","MARCH ","APRIL ","MAR ","JUNE "
120 DATA "JULY ","AUGUST ","SEPTEMBER","OCTOBER ","NOVEMBER ","DECEMBER "
130 INPUT "Enter Month (1-12): ";M
135 IF M<1 OR M>12 THEN 130
140 INPUT "Enter Year (> 1582): ";R
145 IF R<1583 THEN 140
150 IF R-4*INT(R/4)=0 THEN Q(2)=29
155 IF R-100*INT(R/100)=0 THEN Q(2)=28
160 IF R-400*INT(R-400)=0 THEN Q(2)=29
165 R1=R-1:R2=R+INT(R1/4)-INT(R1/100)+INT(R1/400)
170 FOR I=0 TO M-1:R2=R2+Q(I):NEXT I
175 D1=R2-7*INT(R2/7)
180 RESTORE 115:FOR I=1 TO M:READ M$:NEXT I
185 OPEN #1,"10,S=0",OUTPUT
190 PRINT #1,TAB(3);M$;" ";R
210 PRINT #1," Su Mo Tu We Th Fr Sa"
225 C$=" "&RPT$(" ",D1)
230 FOR I=1 TO 7-D1:C$=C$&" "&STR$(I):NEXT I
235 PRINT #1,C$
245 I=8-D1
250 C$=" "
255 FOR L=1 TO 7
260 IF I>9 THEN B$=" " ELSE B$=" "
265 C$=C$&B$&STR$(I)
270 I=I+1:IF I>Q(M)THEN PRINT #1,C$:GOTO 300
275 NEXT L
280 PRINT #1,C$
285 GOTO 250
300 PRINT #1
305 CLOSE #1:GOTO 130
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=CATWAF.TXT; SizeOnDisk=1160
Content-description: CATWAF.TXT
90 REM CATALOG PROGRAM COPIED FROM WAFERTAPE USER GUIDE
100 INPUT "DRIVE NUMBER: ";DN
110 LINPUT "LIST DEVICE: ";LD$
120 OPEN #1,LD$,OUTPUT
130 PRINT #1,"File # File Name # Of Recs."
140 IMAGE " ## ############## #### "
150 RECN=0
160 CALL GETMEM(13,CATADDR)
170 CALL GETMEM(22,BUFFADDR)
180 CALL SPLIT(BUFFADDR+21,MSB,LSB)
190 CALL SPLIT(RECN,MSB2,LSB2)
200 PAB$=CHR$(DN)&CHR$(14)&CHR$(0)&CHR$(LSB2)&CHR$(MSB2)
210 PAB$=PAB$&CHR$(32)&CHR$(0)&CHR$(0)&CHR$(0)&CHR$(0)
220 PAB$=PAB$&CHR$(LSB)&CHR$(MSB)
230 CALL IO(PAB$,STATUS)
240 IF STATUS=0 THEN 300
250 IF STATUS=3 THEN CLOSE #1:STOP
260 PRINT "READ ERROR--";STATUS:PAUSE:CLOSE #1:STOP
300 FILE$=""
310 FOR I=1 TO 12
320 CALL PEEK(BUFFADDR+21-I,K)
330 FILE$=FILE$&CHR$(K)
340 NEXT I
380 CALL PEEK(BUFFADDR+7,K,L)
390 MAXSIZ=K*256+L
430 CALL PEEK(BUFFADDR+5,K,L)
440 NRECS=K*256+L
480 CALL PEEK(BUFFADDR+4,FLAGS)
490 PRINT #1,USING 140,RECN,FILE$,NRECS;
530 PRINT #1
540 RECN=RECN+1
550 GOTO 190
610 SUB SPLIT(DATAVAL,MSB,LSB)
620 MSB=INT(DATAVAL/256)
630 LSB=DATAVAL-MSB*256
640 SUBEND
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=DATATRAN.TXT; SizeOnDisk=1965
Content-description: DATATRAN.TXT
100 !DATA TRANSFER PROGRAM
110 !CC40 ENHANCED BASIC
120 !SET UP
130 N$="NAME: ":T$="TYPE: ":P$="PRICE: ":Q$="QUANTITY; "
140 IMAGE NAME: ##################### TYPE: ###############
150 IMAGE QUANTITY: #### AT $######.##
160 !SET UP FOR OLD OR NEW FILES
170 DISPLAY "ENTER DEV.FILE: ";
180 ACCEPT AT(17)SIZE(-13)VALIDATE(UALPHA,NUMERIC)NULL("1.DATA")REC,DF$
190 DISPLAY AT(1),"OLD OR NEW FILE? (O OR N) ";
200 ACCEPT SIZE(-1)VALIDATE("OoNn")REC,K$
210 IF K$="N"OR K$="n"THEN FORMAT 1
220 OPEN #1,DF$,DISPLAY
230 IF K$="O"OR K$="O"THEN GOSUB 470
240 !ACCEPT DATA FROM KEYBOARD
250 DISPLAY ERASE ALL,N$;:ACCEPT SIZE(-20)VALIDATE(ALPHANUM),NAME$
260 DISPLAY ERASE ALL,T$;:ACCEPT SIZE(-15)VALIDATE(ALPHANUM),TYPE$
270 DISPLAY ERASE ALL,Q$;:ACCEPT SIZE(-4)VALIDATE(DIGIT),Q
280 DISPLAY ERASE ALL,P$;:ACCEPT SIZE(-9)VALIDATE(NUMERIC),P
290 ! PROOF THE INPUT DATA
300 DISPLAY ERASE ALL USING 140,NAMES$,TYPE$;
310 DISPLAY SIZE(-28)USING 150,Q,P;:PAUSE
320 ! CHECK FOR CORRECTIONS
330 DISPLAY AT(1)ERASE ALL,"CORRECTIONS? (Y OR N) ";:GOSUB 450
340 IF K$="Y"OR K$="y"THEN GOSUB 490
350 ! OUTPUT THE DATA TO WAFERTAPE
360 PRINT #1,NAME$:PRINT #1,TYPE$:PRINT #1,Q:PRINT #1,P
370 !CHECK FOR MORE DATA
380 DISPLAY AT(1)ERASE ALL,"MORE DATA? (Y OR N)";:GOSUB 450
390 !STOP OR REPEAT
400 IF K$="N"OR K$="n"THEN CLOSE #1:STOP ELSEGOTO 250
410 !
420 ! SUBROUTINES
430 !
440 !CHECK FOR YES OR NO
450 ACCEPT SIZE(-1)VALIDATE("YyNn"),K$:RETURN
460 !ADVANCE TO END OF FILE,IF OLD FILE
470 IF EOF(1)THEN RETURN ELSE INPUT #1,A$,B$,C,D:GOTO 470
480 ! EDIT AND CORRECT DATA ENTRY
490 DISPLAY ERASE ALL,N$;NAME$;
500 ACCEPT AT(7)SIZE(-20)VALIDATE(ALPHANUM)REC,NAME$
510 DISPLAY ERASE ALL,T$;TYPE$;
520 ACCEPT AT(7)SIZE(-15)VALIDATE(ALPHANUM)REC,TYPE$
530 DISPLAY ERASE ALL,Q$;Q;:ACCEPT AT(12)SIZE(-4)VALIDATE(DIGIT)REC,Q
540 DISPLAY ERASE ALL,P$;:DISPLAY SIZE(-10)USING"$######.##",P;
550 ACCEPT AT(9)SIZE(-9)VALIDATE(NUMERIC)REC,P
560 RETURN
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=DIR.TXT; SizeOnDisk=2749
Content-description: DIR.TXT
90 REM Quickdisk DIR program modified by Charles Good.
95 REM Some lines can't be typed in such as 330 and 340. You need the
97 REM original DIR program to make this listing work.
100 ! "8,DIR"
110 ! 3.3.1986/SEPTEMBER 1990
120 ! V3.1
130 PRINT " --QUICKDISK Catalog--":PAUSE 1.5
132 PRINT "Press ENTER to show next file,":PAUSE 1.5
134 PRINT "or RUN to boot listed program.":PAUSE 1.5
140 PRINT " Printer ? [Y/N]":Q$=KEY$
150 IF Q$="n"OR Q$="N"THEN 260 ELSE IF Q$="y"OR Q$="Y"THEN DR=1 ELSE 140
160 LINPUT "Printer device number: ";Q$
170 ON ERROR 220:OPEN #6,Q$,OUTPUT
175 IF Q$="10"THEN PRINT #6,CHR$(18)
180 LINPUT "ENTER QuickDisk name: ";R$
190 PRINT #6," Directory for QUICKDISK ";R$
200 PRINT #6,"FILE #//";"FILE NAME//";"FILE LENGTH//";"TYPE"
210 CLOSE #6:GOTO 260
220 CALL ERR(KD,TP,DT,ZE):IF KD=24 THEN Z=Z+1
230 IF Z>3 THEN PRINT "NO PRINTER ATTACHED!":PAUSE 2.1:END
240 PRINT "INVALID PRINTER NUMBER!":PAUSE:RETURN 160
250 PRINT "Kd.:";KD;"Typ:";TP;"Dt:";DT;"Ze:";ZE:PAUSE:STOP
260 !TEST1
330 CALL GETMEM(18,
340 CALL SPLIT(
350 FNU
355 PRINT " --SEARCHING DISK--"
360 CALL SPLIT(FNU
370 PAB$=CHR$(8)&CHR$(14)&CHR$(0)&CHR$(L)&CHR$(H)&CHR$(0)&CHR$(18)
380 PAB$=PAB$&RPT$(CHR$(0),3)&CHR$(
390 CALL IOX(PAB$,STATUS):IF DR=1 THEN 420
395 IF STATUS<>3 THEN 410
400 IF STATUS=3 THEN PRINT "TOTAL BYTES THIS DISK: ";SM:PAUSE
405 PRINT "CATALOG COMPLETE":PAUSE 1.5:STOP
410 IF STATUS<>0 THEN PRINT "IO ERROR":PAUSE:STOP
420 CALL PEEK(
430 NAME$="":NAME3$=""
440 FOR I=16 TO 5 STEP -1
450 CALL PEEK(
460 NEXT I
470 CALL PEEK(
480 RLEN=MSB*256+LSB
490 CALL PEEK(
500 RNUM=MSB*256+LSB
505 IF STATUS<>0 THEN 550
510 CALL PEEK(
520 PRINT USING 530,FNU
521 SM=SM+(RLEN*RNUM)
522 FOR I=1 TO 12
523 NAME2$=SEG$(NAME$,I,1):NAM=ASC(NAME2$)
525 IF NAM>32 AND NAM<127 THEN NAME3$=NAME3$&CHR$(NAM)
526 NEXT I
527 CALL KEY(K,S):IF S=0 THEN 527
528 IF K=191 THEN PRINT " --Searching disk for RUN--":RUN "8."&NAME3$
530 IMAGE "F## ############ ##### #### ###"
540 IF DR=0 THEN 650
550 IF Q$="10"THEN OPEN #6,"10.C=N",OUTPUT:PRINT #6,CHR$(18):GOTO 560
555 OPEN #6,Q$,OUTPUT
560 IF STATUS=3 THEN 610
570 IF STATUS<>0 THEN PRINT "IO ERROR":PAUSE:STOP
580 IF FLAGS=0 THEN T$="PROGRAMM" ELSE IF FLAGS=1 THEN T$="DIS-DATEN"
590 IF FLAGS=9 THEN T$="INT-DATEN"
600 PRINT #6,USING 630,DNR,NAME$,RLEN*RNUM,T$
605 DNR=DNR+1:GOTO 620
610 PRINT #6,USING"TOTAL DATA STORED: ##### bytes",SM:GOTO 400
620 CLOSE #6
630 IMAGE "## ############ ##### #########"
650 FNU
660 GOTO 355
670 SUB SPLIT(ADR,LEFT,RIGHT)
680 LEFT=INT(ADR/256)
690 RIGHT=ADR-(LEFT*256)
700 !PRINT ADR;LEFT;RIGHT:PAUSE
710 SUBEND
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=DIRWAFER.TXT; SizeOnDisk=2506
Content-description: DIRWAFER.TXT
100 ! "1,DIR"
110 ! 3.3.1986/AUGUST 1990
120 ! V3.1
130 PRINT " --Wafertape Catalog--":PAUSE 1.5
132 PRINT "Press ENTER to show next file,":PAUSE 1.5
134 PRINT "or RUN to boot listed program.":PAUSE 1.5
140 PRINT " Printer ? [Y/N]":Q$=KEY$
150 IF Q$="n"OR Q$="N"THEN 260 ELSE IF Q$="y"OR Q$="Y"THEN DR=1 ELSE 140
160 LINPUT "Printer device number: ";Q$
170 ON ERROR 220:OPEN #6,Q$,OUTPUT
175 IF Q$="10"THEN PRINT #6,CHR$(18)
180 LINPUT "ENTER Wafertape name: ";R$
190 PRINT #6," Directory for Wafertape ";R$
200 PRINT #6,"FILE #//";"FILE NAME//";"TOTAL FILE LENGTH"
210 CLOSE #6:GOTO 260
220 CALL ERR(KD,TP,DT,ZE):IF KD=24 THEN Z=Z+1
230 IF Z>3 THEN PRINT "NO PRINTER ATTACHED!":PAUSE 2.1:END
240 PRINT "INVALID PRINTER NUMBER!":PAUSE:RETURN 160
250 PRINT "Kd.:";KD;"Typ:";TP;"Dt:";DT;"Ze:";ZE:PAUSE:STOP
260 !TEST1
330 CALL GETMEM(18,
340 CALL SPLIT(
350 FNU
355 PRINT " --SEARCHING WAFER--"
360 CALL SPLIT(FNU
370 PAB$=CHR$(1)&CHR$(14)&CHR$(0)&CHR$(L)&CHR$(H)&CHR$(0)&CHR$(18)
380 PAB$=PAB$&RPT$(CHR$(0),3)&CHR$(
390 CALL IO(PAB$,STATUS):IF DR=1 THEN 420
400 IF STATUS=26 THEN PRINT "CATALOG COMPLETE":PAUSE:STOP
405 IF STATUS=6 THEN PRINT "CATALOG COMPLETE":PAUSE:STOP
410 IF STATUS<>0 THEN PRINT "IO ERROR":PAUSE:STOP
420 CALL PEEK(
430 NAME$="":NAME3$=""
440 FOR I=16 TO 5 STEP -1
450 CALL PEEK(
460 NEXT I
470 CALL PEEK(
480 RLEN=MSB*256+LSB
490 CALL PEEK(
500 RNUM=MSB*256+LSB
503 IF STATUS=6 THEN 510
505 IF STATUS<>0 THEN 550
510 CALL PEEK(
520 PRINT USING 530,FNU
522 FOR I=1 TO 12
523 NAME2$=SEG$(NAME$,I,1):NAM=ASC(NAME2$)
525 IF NAM>32 AND NAM<127 THEN NAME3$=NAME3$&CHR$(NAM)
526 NEXT I
527 CALL KEY(K,S):IF S=0 THEN 527
528 IF K=191 THEN PRINT " --Searching wafer for RUN--":RUN "1."&NAME3$
530 IMAGE "F## ############ ##### #### ###"
540 IF DR=0 THEN 650
550 IF Q$="10"THEN OPEN #6,"10.C=N",OUTPUT:PRINT #6,CHR$(18):GOTO 560
555 OPEN #6,Q$,OUTPUT
560 IF STATUS=26 THEN 610
565 IF STATUS=6 THEN 610
570 IF STATUS<>0 THEN PRINT "IO ERROR":PAUSE:STOP
580 !IF FLAGS=0 THEN T$="PROGRAMM" ELSE IF FLAGS=1 THEN T$="DIS-DATEN"
590 !IF FLAGS=9 THEN T$="INT-DATEN"
600 PRINT #6,USING 630,DNR,NAME$,RLEN*RNUM,T$
605 DNR=DNR+1:GOTO 620
610 PRINT #6,USING"TOTAL DATA STORED: ##### bytes",SM:GOTO 400
620 CLOSE #6
630 IMAGE "## ############ ##### #########"
650 FNU
660 GOTO 355
670 SUB SPLIT(ADR,LEFT,RIGHT)
680 LEFT=INT(ADR/256)
690 RIGHT=ADR-(LEFT*256)
700 !PRINT ADR;LEFT;RIGHT:PAUSE
710 SUBEND
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=FINHLP40.TXT; SizeOnDisk=8598
Content-description: FINHLP40.TXT
1 REM for 18K CC40. Must break up for 6K CC40 to use
2 PRINT " FINANCIAL PLANNING HELPS":PAUSE 3
4 PRINT " by Rob't M Charlson":PAUSE 3
6 PRINT " of DOLLAR DIRECTORS,INC.":PAUSE 3
8 DISPLAY " INVESTMENT RESULTS (Y/N)? ":K$=KEY$
10 IF K$="Y"OR K$="y"THEN 12 ELSE IF K$="N"OR K$="n"THEN 48 ELSE 8
12 DISPLAY " Press Prog # Any Key= Next":PAUSE 3
14 DISPLAY " 1=LUMP SUM inv 2=Monthly Inv":K$=KEY$
16 IF K$="1"THEN 100 ELSE IF K$="2"THEN 200 ELSE 18
18 DISPLAY " 3=Check-A-Month 4=PV-Pension":K$=KEY$
20 IF K$="3"THEN 300 ELSE IF K$="4"THEN 400 ELSE 22
22 DISPLAY " 5=A.P.R.% 6=MO-MTG-PMT":K$=KEY$
24 IF K$="5"THEN 500 ELSE IF K$="6"THEN 600 ELSE 26
26 DISPLAY " 7= Amortize Mortgage Payments":K$=KEY$
28 IF K$="7"THEN 700 ELSE 48
48 DISPLAY " TI's Finance Module (Y/N)? ":K$=KEY$
50 IF K$="Y"OR K$="y"THEN 52 ELSE IF K$="N"OR K$="n"THEN 96 ELSE 48
52 DISPLAY " With Finance Module inserted ":PAUSE 2
54 DISPLAY "Press Prog # Any key= Next":PAUSE 3
56 DISPLAY " 1=Directory 2=Calendar ":K$=KEY$
58 IF K$="1"THEN 71 ELSE IF K$="2"THEN 72 ELSE 60
60 DISPLAY " 3=Cash Flow 4=Data Forecast":K$=KEY$
62 IF K$="3"THEN 73 ELSE IF K$="4"THEN 74 ELSE 64
64 DISPLAY " 5=Bus Forecast 6=Lease/Purch":K$=KEY$
66 IF K$="5"THEN 75 ELSE IF K$="6"THEN 76 ELSE 68
68 DISPLAY " 7=Machine Repl 8=Money Eval":K$=KEY$
70 IF K$="7"THEN 77 ELSE IF K$="8"THEN 78 ELSE 96
71 RUN "DIR"
72 RUN "CAL"
73 RUN "CFLOW"
74 RUN "FCAST"
75 RUN "FNEED"
76 RUN "LPURC"
77 RUN "MREPL"
78 RUN "MEVAL"
96 DISPLAY "1=ReRun Module 2=ReRun Inv":K$=KEY$
98 IF K$="1"THEN 56 ELSE IF K$="2"THEN 14 ELSE 96
100 DISPLAY REC," LUMP SUM Investment Results:":PAUSE 3
105 GOSUB 171:GOSUB 172:GOSUB 173:GOSUB 174
110 FV=INV*((1+ROI/100/CPY)^(YRS*CPY)):FV=INT(FV*1+.5)
115 DISPLAY " Future Dollars = $";FV:PAUSE
120 DISPLAY " Investment +Time & Earnings =":PAUSE 3
125 GAIN=FV-INV:GAIN=INT(GAIN*1+.5)
130 DISPLAY REC,"$";INV;" +$";GAIN;"=$";FV:PAUSE
135 DISPLAY " Do you want Changes (Y/N)? ":K$=KEY$! similar to CALL KEY(K,S)
140 IF K$="Y"OR K$="y"THEN 145 ELSE IF K$="N"OR K$="n"THEN 155 ELSE 135
145 DISPLAY " 1=INV 2=ROI% 3=YRS 4=CPY #":CALL KEY(K,S):IF S=0 THEN 145
150 IF K<49 OR K>52 THEN 145 ELSE ON K-48 GOSUB 171,172,173,174:GOTO 110
155 DISPLAY " 1=MENU, 2=NEXT PROG, 3=EXIT":K$=KEY$
160 IF K$="1"THEN 8 ELSE IF K$="2"THEN 200 ELSE END
171 INPUT " Lump Sum Investment = $";INV:RETURN
172 INPUT " Est Retn-on-Invstment = % ";ROI:RETURN
173 INPUT " Years For Money To Work = ";YRS:RETURN
174 INPUT " Compundings Per Year = ";CPY:RETURN
200 DISPLAY REC," Regular Periodic Investing:":PAUSE 3
205 GOSUB 271:GOSUB 272:GOSUB 273:GOSUB 274
210 TOT=PMT*((1+ROI/100/TPY)^(TPY*YRS)-1)/(ROI/100/TPY)*(1+ROI/100/TPY)
215 GAIN=TOT-((PMT*TPY)*YRS)
220 DISPLAY REC,"Dollars Accumulated =$";INT(TOT*1+.5):PAUSE
225 DISPLAY " $ INV PMTS + $ ROI = $ TOTAL ":PAUSE 2.5
230 DISPLAY "$";INT(PMT*TPY)*YRS;" + $";INT(GAIN*1+.5);"= $";INT(TOT*1+.5):PAUSE
235 DISPLAY " Do you want Changes (Y/N)? ":CALL KEY(K,S):IF S=0 THEN 235
240 IF K=ASC("Y")OR K=ASC("y")THEN 250! 2nd method for CALL KEY(K,S)
245 IF K=ASC("N")OR K=ASC("n")THEN 260 ELSE 235
250 DISPLAY " 1=PMT, 2=TPY, 3=ROI, 4=YRS #":CALL KEY(K,S):IF S=0 THEN 250
255 IF K<49 OR K>52 THEN 240 ELSE ON K-48 GOSUB 271,272,273,274:GOTO 210
260 DISPLAY " 1=MENU, 2=NEXT PROG, 3=EXIT":K$=KEY$
265 IF K$="1"THEN 8 ELSE IF K$="2"THEN 300 ELSE END
271 INPUT " Investing By Mo.Qtr.Yr.=$";PMT:RETURN
272 INPUT " Times Per Year Added x ";TPY:RETURN
273 INPUT " Est Retn-On-Investment % ";ROI:RETURN
274 INPUT " Years to Future Goal ? ";YRS:RETURN
300 DISPLAY REC," Check-A-Month Withdrawal Plan":PAUSE 3
305 GOSUB 371:GOSUB 372:GOSUB 373
310 X=PV*ROI/1200:Y=(1+ROI/1200)^(12*ANN):CKS=X/(1-1/Y)
315 DISPLAY REC;ANN;"Yr Annuity CK-A-MO=$";INT(CKS*1+.5):PAUSE
320 TOT=((CKS*12)*ANN-PV):DISPLAY " $Invested + Gain = $TOT-OUT ":PAUSE 2.5
325 DISPLAY REC,"$";PV;" +";INT(TOT*1+.5);" $";INT((CKS*12)*ANN*1+.5):PAUSE
330 DISPLAY " Do You Want Changes (Y/N)?":CALL KEY(K,S):IF S=0 THEN 330
335 IF K=89 OR K=121 THEN 345! 3rd method for Call Key(K,S)
340 IF K=78 OR K=110 THEN 355 ELSE 330
345 DISPLAY " 1=INV 2=APR% 3=Life Yrs ":CALL KEY(K,S):IF S=0 THEN 345
350 IF K<49 OR K>51 THEN 345 ELSE ON K-48 GOSUB 371,372,373:GOTO 310
355 DISPLAY " 1=Menu, 2=NEXT PROG, 3=Exit":K$=KEY$
360 IF K$="1"THEN 8 ELSE IF K$="2"THEN 400 ELSE END
371 INPUT " Present Inv Worth = $";PV:RETURN
372 INPUT " Est Retn-On-Inv % ";ROI:RETURN
373 INPUT " Est Lifetime Annuity Yrs: ";ANN:RETURN
400 DISPLAY REC," Present Value of Your Pension":PAUSE 3
405 GOSUB 471:GOSUB 472:GOSUB 473
410 PV=PMT*((1-(1+APR)^-YRS)/APR)
415 DISPLAY REC,"LUMP SUM To Duplicate=$";INT(PV*1+.5):PAUSE 4.5
420 ADD=(PMT*YRS)-PV
425 DISPLAY;YRS;"yrs at";100*APR;"% ADDS +$";INT(ADD*1+.5):PAUSE 3
430 DISPLAY REC;"PV$";INT(PV*1+.5);"+";INT(ADD*1+.5);"=CKS$";(PMT*YRS):PAUSE
435 DISPLAY " Do You Want Changes (Y/N)?":K$=KEY$
440 IF K$="Y"OR K$="y"THEN 445 ELSE IF K$="N"OR K$="n"THEN 455 ELSE 435
445 DISPLAY " 1=W-2P 2=Life Yrs 3=APR% #":CALL KEY(K,S):IF S=0 THEN 445
450 IF K<49 OR K>51 THEN 445 ELSE ON K-48 GOSUB 471,472,473:GOTO 410
455 DISPLAY " 1=Menu, 2=NEXT PROG, 3=Exit":K$=KEY$
460 IF K$="1"THEN 8 ELSE IF K$="2"THEN 500 ELSE END
471 INPUT " W-2 Annual Pension = $ ";PMT:RETURN
472 INPUT " I.R.S Life Expectancy Yrs=";YRS:RETURN
473 INPUT " Annuitized Interest RAte % ";APR:APR=.01*APR:RETURN
500 DISPLAY REC," A.P.R. % Retn-on-Investment:":PAUSE 3
505 GOSUB 571:GOSUB 572:GOSUB 573
510 ROI=((OUT/IN)^(1/YRS))-1
515 X=INT(10000*(ROI+.00005)):ROI=X/10000
520 DISPLAY REC," A.P.R.=";ROI*100;"%":PAUSE
525 DISPLAY;IN;"";ROI*100;" %";YRS;"yr $";OUT:PAUSE
530 DISPLAY " Do You Want Changes (Y/N)?":K$=KEY$
535 IF K$="Y"OR K$="y"THEN 540 ELSE IF K$="N"OR K$="n"THEN 550 ELSE 530
540 DISPLAY "1=$OUT 2=$IN 3=YRS INV ":CALL KEY(K,S):IF S=0 THEN 540
545 IF K<49 OR K>51 THEN 540 ELSE ON K-48 GOSUB 571,572,573:GOTO 510
550 DISPLAY " 1=Menu, 2=NEXT PROG, 3=Exit":K$=KEY$
560 IF K$="1"THEN 8 ELSE IF K$="2"THEN 600 ELSE END
571 INPUT " Value If Sold = $";OUT:RETURN
572 INPUT " Beginning Investment $ ";IN:RETURN
573 INPUT " Number Years Invested ?";YRS:RETURN
600 DISPLAY REC," Monthly MTGE or Loan Payments:":PAUSE 2
605 GOSUB 671:GOSUB 672:GOSUB 673
610 X1=MTG*IR/1200:X2=(1+IR/1200)^(12*YRS):PMT=X1/(1-1/X2)
615 DISPLAY REC," Monthly Payment = $";INT(PMT*100+.5)/100:PAUSE
620 DISPLAY " Truth in Lending Totals:":PAUSE 2
625 TOT=(PMT*12)*YRS:DISPLAY " Mortgage +Intr Cost =Tot Cost":PAUSE 2
630 DISPLAY REC," $";MTG;" +";INT(TOT-MTG);" =$";INT(TOT+.5):PAUSE
635 DISPLAY " Do You Want Changes (Y/N)?":K$=KEY$
640 IF K$="Y"OR K$="y"THEN 645 ELSE IF K$="N"OR K$="n"THEN 655 ELSE 635
645 DISPLAY "Change: 1=MTG 2=INT% 3=YRS #":CALL KEY(K,S):IF S=0 THEN 645
650 IF K<49 OR K>51 THEN 645 ELSE ON K-48 GOSUB 671,672,673:GOTO 610
655 DISPLAY " 1=Menu, 2=NEXT PROG, 3=Exit":K$=KEY$
660 IF K$="1"THEN 8 ELSE IF K$="2"THEN 700 ELSE END
671 INPUT "Price-Dn Pmt= Mortgage $";MTG:RETURN
672 INPUT " Interest Rate % = ";IR:RETURN
673 INPUT " Years To Pay-Off = ";YRS:RETURN
700 DISPLAY REC," Amortization Schedule:":PAUSE 3
702 INPUT " Loan Amount $";AMT," Number Monthly Payments # ";NMP
704 INPUT " Annual Interest Rate %? ";APR
706 APR=APR/1200
708 PMT=AMT*(APR/(1-(1+APR)^(-NMP)))
710 TOT=INT(PMT*NMP*100)/100
712 MPYMT=INT(PMT*100)/100
714 LASTP=TOT-MPYMT*(NMP-1)
716 DISPLAY USING" Monthly Payment= $####.##";MPYMT:PAUSE
718 DISPLAY USING" Last Mo. Payment= $####.##";LASTP:PAUSE
720 INPUT "Show Schedule From Month # ";START," to Month # ";QUIT
722 COMP=(1+APR)^(-(START-1)):LEFT=1/COMP*(PMT*(COMP-1)/APR+AMT)
724 IF QUIT=NMP THEN FLG=1:QUIT=NMP-1 ELSE FLG=0
726 FOR Z=START TO QUIT
728 COMP=(1+APR)^(-Z):BAL=1/COMP*(PMT*(COMP-1)/APR+AMT)
730 DISPLAY REC," Month # ";Z:PAUSE 1
732 INTR=BAL-LEFT+MPYMT:LEFT=BAL:PRINC=MPYMT-INTR
734 IMAGE intr=$####.## Princ=$####.##
736 DISPLAY USING 734,INTR,PRINC:PAUSE
738 IMAGE >>>>>>BALANCE = $######.##
740 DISPLAY USING 738,BAL:PAUSE
742 NEXT Z
744 IF FLG=0 THEN 754
746 DISPLAY REC," MONTH # ";NMP:PAUSE 1
748 INTR=LSATP-BAL:PRINC=BAL:BAL=0
750 PRINT USING 734,INTR,PRINC:PAUSE
752 PRINT USING 738,BAL:PAUSE
754 INPUT " RERUN (Y/N): ";K$:IF K$="Y"OR K$="y"THEN 702
756 DISPLAY " 1=MENU, 2=EXIT":K$=KEY$
758 IF K$="1"THEN 8 ELSE END
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=FINHLP74.TXT; SizeOnDisk=7545
Content-description: FINHLP74.TXT
1 REM Modified to work with TI74, also works with 16K CC40
2 PRINT " FINANCIAL PLANNING HELPS":PAUSE 3
4 PRINT " by Rob't M Charlson":PAUSE 3
6 PRINT " of DOLLAR DIRECTORS,INC.":PAUSE 3
12 DISPLAY " Press Prog # Any Key= Next":PAUSE 3
14 DISPLAY " 1=LUMP SUM inv 2=Monthly Inv":K$=KEY$
16 IF K$="1"THEN 100 ELSE IF K$="2"THEN 200 ELSE 18
18 DISPLAY " 3=Check-A-Month 4=PV-Pension":K$=KEY$
20 IF K$="3"THEN 300 ELSE IF K$="4"THEN 400 ELSE 22
22 DISPLAY " 5=A.P.R.% 6=MO-MTG-PMT":K$=KEY$
24 IF K$="5"THEN 500 ELSE IF K$="6"THEN 600 ELSE 26
26 DISPLAY " 7= Amortize Mortgage Payments":K$=KEY$
28 IF K$="7"THEN 700 ELSE 14
100 DISPLAY " LUMP SUM Investment Results:":PAUSE 3
105 GOSUB 171:GOSUB 172:GOSUB 173:GOSUB 174
110 FV=INV*((1+ROI/100/CPY)^(YRS*CPY)):FV=INT(FV*1+.5)
115 DISPLAY " Future Dollars = $";FV:PAUSE
120 DISPLAY " Investment +Time & Earnings =":PAUSE 3
125 GAIN=FV-INV:GAIN=INT(GAIN*1+.5)
130 DISPLAY "$";INV;" +$";GAIN;"=$";FV:PAUSE
135 DISPLAY " Do you want Changes (Y/N)? ":K$=KEY$! similar to CALL KEY(K,S)
140 IF K$="Y"OR K$="y"THEN 145 ELSE IF K$="N"OR K$="n"THEN 155 ELSE 135
145 DISPLAY " 1=INV 2=ROI% 3=YRS 4=CPY #":CALL KEY(K,S):IF S=0 THEN 145
150 IF K<49 OR K>52 THEN 145 ELSE ON K-48 GOSUB 171,172,173,174:GOTO 110
155 DISPLAY " 1=MENU, 2=NEXT PROG, 3=EXIT":K$=KEY$
160 IF K$="1"THEN 8 ELSE IF K$="2"THEN 200 ELSE END
171 INPUT " Lump Sum Investment = $";INV:RETURN
172 INPUT " Est Retn-on-Invstment = % ";ROI:RETURN
173 INPUT " Years For Money To Work = ";YRS:RETURN
174 INPUT " Compundings Per Year = ";CPY:RETURN
200 DISPLAY " Regular Periodic Investing:":PAUSE 3
205 GOSUB 271:GOSUB 272:GOSUB 273:GOSUB 274
210 TOT=PMT*((1+ROI/100/TPY)^(TPY*YRS)-1)/(ROI/100/TPY)*(1+ROI/100/TPY)
215 GAIN=TOT-((PMT*TPY)*YRS)
220 DISPLAY "Dollars Accumulated =$";INT(TOT*1+.5):PAUSE
225 DISPLAY " $ INV PMTS + $ ROI = $ TOTAL ":PAUSE 2.5
230 DISPLAY "$";INT(PMT*TPY)*YRS;" + $";INT(GAIN*1+.5);"= $";INT(TOT*1+.5):PAUSE
235 DISPLAY " Do you want Changes (Y/N)? ":CALL KEY(K,S):IF S=0 THEN 235
240 IF K=ASC("Y")OR K=ASC("y")THEN 250! 2nd method for CALL KEY(K,S)
245 IF K=ASC("N")OR K=ASC("n")THEN 260 ELSE 235
250 DISPLAY " 1=PMT, 2=TPY, 3=ROI, 4=YRS #":CALL KEY(K,S):IF S=0 THEN 250
255 IF K<49 OR K>52 THEN 240 ELSE ON K-48 GOSUB 271,272,273,274:GOTO 210
260 DISPLAY " 1=MENU, 2=NEXT PROG, 3=EXIT":K$=KEY$
265 IF K$="1"THEN 8 ELSE IF K$="2"THEN 300 ELSE END
271 INPUT " Investing By Mo.Qtr.Yr.=$";PMT:RETURN
272 INPUT " Times Per Year Added x ";TPY:RETURN
273 INPUT " Est Retn-On-Investment % ";ROI:RETURN
274 INPUT " Years to Future Goal ? ";YRS:RETURN
300 DISPLAY " Check-A-Month Withdrawal Plan":PAUSE 3
305 GOSUB 371:GOSUB 372:GOSUB 373
310 X=PV*ROI/1200:Y=(1+ROI/1200)^(12*ANN):CKS=X/(1-1/Y)
315 DISPLAY ANN;"Yr Annuity CK-A-MO=$";INT(CKS*1+.5):PAUSE
320 TOT=((CKS*12)*ANN-PV):DISPLAY " $Invested + Gain = $TOT-OUT ":PAUSE 2.5
325 DISPLAY "$";PV;" +";INT(TOT*1+.5);" $";INT((CKS*12)*ANN*1+.5):PAUSE
330 DISPLAY " Do You Want Changes (Y/N)?":CALL KEY(K,S):IF S=0 THEN 330
335 IF K=89 OR K=121 THEN 345! 3rd method for Call Key(K,S)
340 IF K=78 OR K=110 THEN 355 ELSE 330
345 DISPLAY " 1=INV 2=APR% 3=Life Yrs ":CALL KEY(K,S):IF S=0 THEN 345
350 IF K<49 OR K>51 THEN 345 ELSE ON K-48 GOSUB 371,372,373:GOTO 310
355 DISPLAY " 1=Menu, 2=NEXT PROG, 3=Exit":K$=KEY$
360 IF K$="1"THEN 8 ELSE IF K$="2"THEN 400 ELSE END
371 INPUT " Present Inv Worth = $";PV:RETURN
372 INPUT " Est Retn-On-Inv % ";ROI:RETURN
373 INPUT " Est Lifetime Annuity Yrs: ";ANN:RETURN
400 DISPLAY " Present Value of Your Pension":PAUSE 3
405 GOSUB 471:GOSUB 472:GOSUB 473
410 PV=PMT*((1-(1+APR)^-YRS)/APR)
415 DISPLAY "LUMP SUM To Duplicate=$";INT(PV*1+.5):PAUSE 4.5
420 ADD=(PMT*YRS)-PV
425 DISPLAY;YRS;"yrs at";100*APR;"% ADDS +$";INT(ADD*1+.5):PAUSE 3
430 DISPLAY "PV$";INT(PV*1+.5);"+";INT(ADD*1+.5);"=CKS$";(PMT*YRS):PAUSE
435 DISPLAY " Do You Want Changes (Y/N)?":K$=KEY$
440 IF K$="Y"OR K$="y"THEN 445 ELSE IF K$="N"OR K$="n"THEN 455 ELSE 435
445 DISPLAY " 1=W-2P 2=Life Yrs 3=APR% #":CALL KEY(K,S):IF S=0 THEN 445
450 IF K<49 OR K>51 THEN 445 ELSE ON K-48 GOSUB 471,472,473:GOTO 410
455 DISPLAY " 1=Menu, 2=NEXT PROG, 3=Exit":K$=KEY$
460 IF K$="1"THEN 8 ELSE IF K$="2"THEN 500 ELSE END
471 INPUT " W-2 Annual Pension = $ ";PMT:RETURN
472 INPUT " I.R.S Life Expectancy Yrs=";YRS:RETURN
473 INPUT " Annuitized Interest RAte % ";APR:APR=.01*APR:RETURN
500 DISPLAY " A.P.R. % Retn-on-Investment:":PAUSE 3
505 GOSUB 571:GOSUB 572:GOSUB 573
510 ROI=((OUT/IN)^(1/YRS))-1
515 X=INT(10000*(ROI+.00005)):ROI=X/10000
520 DISPLAY " A.P.R.=";ROI*100;"%":PAUSE
525 DISPLAY;IN;"";ROI*100;" %";YRS;"yr $";OUT:PAUSE
530 DISPLAY " Do You Want Changes (Y/N)?":K$=KEY$
535 IF K$="Y"OR K$="y"THEN 540 ELSE IF K$="N"OR K$="n"THEN 550 ELSE 530
540 DISPLAY "1=$OUT 2=$IN 3=YRS INV ":CALL KEY(K,S):IF S=0 THEN 540
545 IF K<49 OR K>51 THEN 540 ELSE ON K-48 GOSUB 571,572,573:GOTO 510
550 DISPLAY " 1=Menu, 2=NEXT PROG, 3=Exit":K$=KEY$
560 IF K$="1"THEN 8 ELSE IF K$="2"THEN 600 ELSE END
571 INPUT " Value If Sold = $";OUT:RETURN
572 INPUT " Beginning Investment $ ";IN:RETURN
573 INPUT " Number Years Invested ?";YRS:RETURN
600 DISPLAY " Monthly MTGE or Loan Payments:":PAUSE 2
605 GOSUB 671:GOSUB 672:GOSUB 673
610 X1=MTG*IR/1200:X2=(1+IR/1200)^(12*YRS):PMT=X1/(1-1/X2)
615 DISPLAY " Monthly Payment = $";INT(PMT*100+.5)/100:PAUSE
620 DISPLAY " Truth in Lending Totals:":PAUSE 2
625 TOT=(PMT*12)*YRS:DISPLAY " Mortgage +Intr Cost =Tot Cost":PAUSE 2
630 DISPLAY " $";MTG;" +";INT(TOT-MTG);" =$";INT(TOT+.5):PAUSE
635 DISPLAY " Do You Want Changes (Y/N)?":K$=KEY$
640 IF K$="Y"OR K$="y"THEN 645 ELSE IF K$="N"OR K$="n"THEN 655 ELSE 635
645 DISPLAY "Change: 1=MTG 2=INT% 3=YRS #":CALL KEY(K,S):IF S=0 THEN 645
650 IF K<49 OR K>51 THEN 645 ELSE ON K-48 GOSUB 671,672,673:GOTO 610
655 DISPLAY " 1=Menu, 2=NEXT PROG, 3=Exit":K$=KEY$
660 IF K$="1"THEN 8 ELSE IF K$="2"THEN 700 ELSE END
671 INPUT "Price-Dn Pmt= Mortgage $";MTG:RETURN
672 INPUT " Interest Rate % = ";IR:RETURN
673 INPUT " Years To Pay-Off = ";YRS:RETURN
700 DISPLAY " Amortization Schedule:":PAUSE 3
702 INPUT " Loan Amount $";AMT," Number Monthly Payments # ";NMP
704 INPUT " Annual Interest Rate %? ";APR
706 APR=APR/1200
708 PMT=AMT*(APR/(1-(1+APR)^(-NMP)))
710 TOT=INT(PMT*NMP*100)/100
712 MPYMT=INT(PMT*100)/100
714 LASTP=TOT-MPYMT*(NMP-1)
716 DISPLAY USING" Monthly Payment= $####.##";MPYMT:PAUSE
718 DISPLAY USING" Last Mo. Payment= $####.##";LASTP:PAUSE
720 INPUT "Show Schedule From Month # ";START," to Month # ";QUIT
722 COMP=(1+APR)^(-(START-1)):LEFT=1/COMP*(PMT*(COMP-1)/APR+AMT)
724 IF QUIT=NMP THEN FLG=1:QUIT=NMP-1 ELSE FLG=0
726 FOR Z=START TO QUIT
728 COMP=(1+APR)^(-Z):BAL=1/COMP*(PMT*(COMP-1)/APR+AMT)
730 DISPLAY REC," Month # ";Z:PAUSE 1
732 INTR=BAL-LEFT+MPYMT:LEFT=BAL:PRINC=MPYMT-INTR
734 IMAGE intr=$####.## Princ=$####.##
736 DISPLAY USING 734,INTR,PRINC:PAUSE
738 IMAGE >>>>>>BALANCE = $######.##
740 DISPLAY USING 738,BAL:PAUSE
742 NEXT Z
744 IF FLG=0 THEN 754
746 DISPLAY " MONTH # ";NMP:PAUSE 1
748 INTR=LSATP-BAL:PRINC=BAL:BAL=0
750 PRINT USING 734,INTR,PRINC:PAUSE
752 PRINT USING 738,BAL:PAUSE
754 INPUT " RERUN (Y/N): ";K$:IF K$="Y"OR K$="y"THEN 702
756 DISPLAY " 1=MENU, 2=EXIT":K$=KEY$
758 IF K$="1"THEN 8 ELSE END
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=HEADLINE.TXT; SizeOnDisk=1496
Content-description: HEADLINE.TXT
90 REM prints milti colored banners on printer/plotter
100 OPEN #1,"10",OUTPUT
110 INPUT "Enter top line:";L1$
120 INPUT "Enter bottom line (OPTIONAL):";L2$
121 IF L2$=""THEN NL=1
122 IF L1$=""THEN NL=0 ELSE 130
123 PRINT "YOU GOTTA ENTNUMBER THING!!!":PAUSE 4:GOTO 110
130 INPUT "What color(0 for colors):";CO$
140 IF CO$="0"THEN 170
150 IF CO$="1"THEN 160
151 IF CO$="2"THEN 161
152 IF CO$="3"THEN 162
153 IF CO$="4"THEN 163
154 PRINT "COLORS ARE 1-4":PAUSE 4:GOTO 130
160 CO=1:GOTO 180
161 CO=2:GOTO 180
162 CO=3:GOTO 180
163 CO=4:GOTO 180
164 PRINT "COLORS=1-4":PAUSE 4:GOTO 130
170 PRINT "1=BLACK,2=BLUE,3=GREEN,4=RED":PAUSE 5:GOTO 130
180 PRINT #1,CHR$(19)
190 PRINT #1,"C"&CO$
200 PRINT #1,"A1"
210 PRINT #1,"H"
215 IF NL=1 THEN PRINT #1,"M(75,0)":GOTO 230
220 PRINT #1,"M(135,0)"
230 PRINT #1,"S9"
240 PRINT "Plotting... one moment please."
250 T$=L1$
260 GOSUB 410
265 IF NL=1 THEN PRINT #1,"H":GOTO 340
270 FOR X=1 TO LEN(L1$)
280 PRINT #1,"J(0,55)"
290 NEXT X
300 PRINT #1,"J(-110,0)"
310 PRINT #1,"O"
320 T$=L2$
330 GOSUB 410
340 NL=0:INPUT "ANOTHER(Y/N):";Y$
350 IF Y$="Y"THEN 390
360 IF Y$="N"THEN END
370 PRINT "(Y) OR (N) ":PAUSE
380 GOTO 340
390 CLOSE #1
400 GOTO 100
410 FOR C=1 TO LEN(T$)
420 PRINT #1,"O"
430 FOR X=1 TO 5
440 PRINT #1,"M(1,1)"
450 PRINT #1,"O"
460 PRINT #1,"T("&SEG$(T$,C,1)&")"
470 NEXT X
480 PRINT #1,"J(-5,0)"
490 NEXT C
500 RETURN
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=HILO.TXT; SizeOnDisk=1172
Content-description: HILO.TXT
12000 CALL CHAR(1,"040404041F1F0E04")
12010 CALL CHAR(2,"040E1F1F04040404")
12020 DISPLAY BEEP,"GUESS A NUMBER BETWEEN 1 AND 25":PAUSE 1.5
12030 DISPLAY BEEP,"YOU HAVE 6 CHANCES":PAUSE 1
12040 DISPLAY BEEP,"INDICATORS RECORD YOUR GUESSES":PAUSE 1
12050 COUNT=1
12060 RANDOMIZE
12070 SNUM=INTRND(25)
12080 PRINT "ENTER YOUR GUESS";
12090 ACCEPT AT(28)VALIDATE(DIGIT),GUESS
12100 IF GUESS=SNUM THEN 12180
12110 CALL INDIC(COUNT)
12120 IF COUNT=6 THEN 12260
12130 IF GUESS<SNUM THEN 12160
12140 PRINT CHR$(1);GUESS;"Try a smaller number";
12150 COUNT=COUNT+1:GOTO 12090
12160 PRINT CHR$(2);GUESS;"Try a larger number";
12170 COUNT=COUNT+1:GOTO 12090
12180 PRINT "WOW!!***";GUESS;"***is correct":PAUSE 2
12190 FOR A=1 TO 0 STEP-1:X=1
12200 FOR B=1 TO 6
12210 CALL INDIC(B,A):PAUSE .1
12220 DISPLAY AT(X)BEEP,"YEA!":X=X+5
12230 NEXT B
12240 NEXT A
12250 GOTO 12320
12260 PRINT "6 Chances!";SNUM;"was the number":PAUSE 4
12270 FOR A=1 TO 30 STEP 10
12280 DISPLAY AT(A) BEEP,"BOO!":PAUSE .2:NEXT A
12290 FOR J=1 TO COUNT
12300 CALL INDIC(J,0)
12310 NEXT J
12320 LINPUT "Play again (Y/N): ";A$
12330 IF A$="Y" OR A$="y" THEN 12050
12340 RETURN
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=INVENTOR.TXT; SizeOnDisk=2576
Content-description: INVENTOR.TXT
10 DIM X$(100),Y(100),Y$(100)
20 CO,B=0
21 GOTO 160
30 INPUT "Load INV.FILE(Y/N)?:";YN$:IF YN$="N"THEN CALL POKE(20480,0):GOTO 160
40 INPUT "LOAD>(W)afer(M)emory?:";ANS$
50 IF ANS$="W"THEN 590
60 IF ANS$="M"THEN 70 ELSE GOTO 40
70 CALL PEEK(20480,A):IF A=0 THEN Q$="Nothing in memory.":PAUSE 2:GOTO 150
80 FOR CNT=1 TO A:FOR CNTT=1 TO 15
90 CALL PEEK(CNT*15+(CNTT+20479),T):X$(CNT)=X$(CNT)&CHR$(T):PRINT X$(CNT)
100 NEXT CNTT:FOR CNTT=1 TO 10
110 CALL PEEK(CNT*10+(CNTT+21984),T):Y$(CNT)=Y$(CNT)&CHR$(T)
120 PRINT X$(CNT);Y$(CNT)
130 NEXT CNTT:PRINT X$(CNT);Y$(CNT):NEXT CNT
140 FOR CNT=1 TO A:Y(CNT)=VAL(Y$(CNT)):NEXT CNT:CO=A:Q$="Finished loading!"
150 PRINT Q$:PAUSE 2
160 INPUT "(A)dd(P)rint(L)oad(S)ave:";ANS$
161 IF ANS$="L"THEN 30
170 IF ANS$="A"THEN 220
180 IF ANS$="S"THEN 350
190 IF ANS$="P"THEN 520
200 IF ANS$="SCAN"THEN 10000
210 GOTO 160
220 LINPUT "ITEM>";ITEM$
230 IF ITEM$="Q"THEN 160
240 A=LEN(ITEM$):IF A>15 THEN PRINT "15 or less charactors!":PAUSE 2:GOTO 220
250 A=LEN(ITEM$):IF A<15 THEN ITEM$=ITEM$&RPT$(" ",15-A)
260 INPUT "PRICE>";ITPRC
270 CO=CO+1
280 X$(CO)=ITEM$:Y(CO)=ITPRC
290 PRINT X$(CO);Y(CO);"CORRECT?"
300 CALL KEY(K,S):IF S=0 THEN 300
310 YN$=CHR$(K)
320 IF YN$="Y"THEN 220
330 IF YN$="N"THEN CO=CO-1:GOTO 220
340 PRINT "(Y)es or (N)o!":PAUSE 2:GOTO 290
350 INPUT "SAVE>(W)afer(M)emory(B)oth";ANS$
360 IF ANS$="W"THEN 400
370 IF ANS$="M"THEN 440
380 IF ANS$="B"THEN B=2:GOTO 400
390 GOTO 350
400 INPUT "Wafer 1-10?:";W$:PRINT "SAVING TO WAFER #";W$
410 OPEN #1,W$&".DATAFILE",INTERNAL,OUTPUT
420 FOR CNT=1 TO CO:PRINT #1,X$(CNT),Y(CNT):NEXT CNT:CLOSE #1
430 IF B=0 THEN 160:B=0
440 PRINT "SAVING TO MEMORY"
450 CALL PEEK(20480,FLAG):ADR=15*FLAG+20495:ADT=10*FLAG+21995
460 FOR CNT=FLAG+1 TO CO
470 FOR DE=1 TO 15:CALL POKE(ADR,ASC(SEG$(X$(CNT),DE,1))):ADR=ADR+1
480 NEXT DE:B$=STR$(ABS(Y(CNT))):A=LEN(B$)
490 IF A<10 THEN B$=B$&RPT$(" ",10-A):A=10:FOR DE=1 TO 10
500 NU$=SEG$(B$,DE,1):CALL POKE(ADT,ASC(NU$)):ADT=ADT+1
510 NEXT DE:NEXT CNT:CALL POKE(20480,CO)
520 PRINT "Printing....":OPEN #1,"10.S=0",OUTPUT
530 FOR CNT=1 TO CO:PRINT #1,X$(CNT);Y(CNT):NEXT CNT
540 CLOSE #1:GOTO 160
550 OPEN #1,"10.S=0",OUTPUT
560 CALL PEEK(20480,DE):FOR CNT=20480 TO 20494+(DE*15):CALL PEEK(CNT,K)
570 PRINT #1,CHR$(3);CNT,K,CHR$(K):NEXT CNT
580 CLOSE #1:GOTO 160
590 INPUT "Wafer 1-10?:";W$:PRINT "Loading from Wafer #";W$
600 OPEN #2,W$&".DATAFILE",INTERNAL,INPUT:CT=1
610 IF EOF(2)=-1 THEN 630 ELSE INPUT #2,X$(CT),Y(CT)
620 CT=CT+1:GOTO 610
630 CO=CT-1:CALL POKE(20480,CT-1):GOTO 160
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=JUMPJACK.TXT; SizeOnDisk=247
Content-description: JUMPJACK.TXT
100 CALL CHAR(0,"0E0E150E04040A11"):CALL CHAR(1,"0E0E040E15040404")
110 FOR I=1 TO 31:FOR J=0 TO 1:DISPLAY AT(I),CHR$(J):PAUSE .3
120 NEXT J:NEXT I
130 FOR K=31 TO 1 STEP -1:FOR L=0 TO 1:DISPLAY AT(K),CHE$(L)
140 NEXT L:NEXT K
150 GOTO 110
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=MULTIPRG.TXT; SizeOnDisk=14908
Content-description: MULTIPRG.TXT
1 REM Multiple programs from the same menu for an 18K CC40
5 REM RESISTOR COLOR CODE, Weight Estimator, Hi-Lo game
10 DIM PROMPT$(10)
20 FOR P=1 TO 10:READ PROMPT$(P):NEXT
30 LINPUT "Weight Estimator (Y/N): ";A$
40 IF A$="Y" OR A$="y" THEN GOSUB 140
50 LINPUT "Color Code (Y/N): ";A$
60 IF A$="Y" OR A$="y" THEN GOSUB 1840
70 LINPUT "Want to Play HI-LOW game (Y/N): ";A$
80 IF A$="Y" OR A$="y" THEN GOSUB 2450
90 LINPUT "EXIT (Y/N):";A$
100 IF A$="Y" OR A$="y" THEN END
110 GOTO 30
120 DATA 8,ABS,203,APPEND,249,ASC,220,ATN,204,AT,240,AND,187,ALL,236,ACCEPT,164,
3,BASE,241,BREAK,142,BEEP,238
130 S$=RPT$(" ",80):: GOTO 230 :: A$,B$,P$,A,B,C,E,I,L,M,P,X,Y,Z :: !@P-
140 REM DIM PROMPT$(10)
150 REM FOR P=1 TO 10:READ PROMPT$(P):NEXT
160 DATA INPUT,146,INT,207,INTERNAL,245,0,0,4,LEN,213,LET,141,LOG,208,LINPUT,170
,2,MAX,223,MIN,224,3,NEXT,150
170 F1=0:F2=0:F3=0:F4=0:F5=0:F6=0:F7=0
180 DATA PI,221,0,9,RND,215,READ,151,RETURN,136,RESTORE,148,RANDOMIZE,149,REC,22
2,RELATIVE,244,RPT$,225,RUN,169
190 PRINT "Welcome to the weight estimator":PAUSE 3
200 LINPUT "Enter (M)ale or (F)emale: ";SEX$
210 IF SEX$="M" OR SEX$="m" THEN F1=1:GOTO 240
220 IF SEX$="F" OR SEX$="f" THEN F2=1:GOTO 240
230 DISPLAY AT(9)BEEP,"INVALID INPUT":PAUSE 1:GOTO 200
240 REM PRINT "Enter height in (feet.inches)":PAUSE 3
250 INPUT "Enter height in # of feet: ";HEIGHT
260 INPUT "Enter # of inches: ";I
270 H=HEIGHT*12+I
280 ON ERROR 280 :: ACCEPT AT(6,2):A$ :: OPEN #2:A$,VARIABLE 163
290 DISPLAY AT(8,2):"enter 1 for basic":" enter 2 for extended basic":" --->2"
300 ON ERROR 1030 :: ACCEPT AT(10,8)SIZE(-1)VALIDATE("12"):A$ :: IF A$="2" THEN
E=1 :: GOTO 350 ELSE IF A$="" THEN 290
310 LINPUT "Enter FRAME type (S/M/L): ";F$
320 IF F$="S" OR F$="s" THEN F3=1:GOTO 390
330 IF F$="M" OR F$="m" THEN F4=1:GOTO 390
340 IF F$="L" OR F$="l" THEN F5=1:GOTO 390
350 GOTO 310
360 DISPLAY AT(18,1):"B. Lines regularly sequenced" :: ACCEPT AT(12,26)VALIDATE(
"AB")SIZE(-1):A$
370 IF A$="" THEN 360 ELSE IF A$="A" THEN 400 ELSE DISPLAY AT(19,4):"Enter line
increment:0010"
380 ACCEPT AT(19,25)VALIDATE(DIGIT)SIZE(-4):I :: IF I=0 THEN 380
390 INPUT "Enter Your Weight: ";WEIGHT
400 IF I=0 THEN 430 ELSE IF EOF(1)THEN I=0 :: A$=P$ :: GOTO 460 ELSE LINPUT #1:B
$ :: IF B$="" OR B$=" " THEN 400
410 IF SEG$(B$,1,LEN(STR$(L+I))+1)=(STR$(L+I)&" ")THEN A$=P$ :: P$=B$ :: L=L+I :
: GOTO 460
420 P$=SEG$(P$&S$,1,INT((LEN(P$)-1)/80+1)*80)&B$ :: IF LEN(P$)=255 THEN DISPLAY
AT(24,1):"* error - line is too long" :: GOTO 400 ELSE 400
430 IF EOF(1)THEN PRINT #2:CHR$(255);CHR$(255):: CLOSE #1 :: CLOSE #2 :: STOP EL
SE A$=""
440 IF F1 AND H>=62 AND H<63 AND F3 THEN W$="128-134":MIN=128:MAX=134
450 IF F1 AND H>=62 AND H<63 AND F4 THEN W$="131-141":MIN=131:MAX=141
460 IF F1 AND H>=62 AND H<63 AND F5 THEN W$="138-150":MIN=128:MAX=134
470 IF F1 AND H>=63 AND H<64 AND F3 THEN W$="130-136":MIN=130:MAX=136
480 IF F1 AND H>=63 AND H<64 AND F4 THEN W$="133-143":MIN=133:MAX=143
490 IF F1 AND H>=63 AND H<64 AND F5 THEN W$="140-153":MIN=140:MAX=153
500 IF F1 AND H>=64 AND H<65 AND F3 THEN W$="132-138":MIN=132:MAX=138
510 IF F1 AND H>=64 AND H<65 AND F4 THEN W$="135-145":MIN=135:MAX=145
520 IF F1 AND H>=64 AND H<65 AND F5 THEN W$="142-156":MIN=142:MAX=156
530 IF F1 AND H>=65 AND H<66 AND F3 THEN W$="134-140":MIN=134:MAX=140
540 IF F1 AND H>=65 AND H<66 AND F4 THEN W$="137-148":MIN=137:MAX=148
550 IF F1 AND H>=65 AND H<66 AND F5 THEN W$="144-160":MIN=144:MAX=160
560 IF F1 AND H>=66 AND H<67 AND F3 THEN W$="136-142":MIN=136:MAX=142
570 IF F1 AND H>=66 AND H<67 AND F4 THEN W$="139-151":MIN=139:MAX=151
580 IF F1 AND H>=66 AND H<67 AND F5 THEN W$="146-164":MIN=146:MAX=164
590 IF F1 AND H>=67 AND H<68 AND F3 THEN W$="138-145":MIN=138:MAX=145
600 IF F1 AND H>=67 AND H<68 AND F4 THEN W$="145-157":MIN=145:MAX=157
610 IF F1 AND H>=67 AND H<68 AND F5 THEN W$="152-172":MIN=152:MAX=172
620 IF F1 AND H>=68 AND H<69 AND F3 THEN W$="140-148":MIN=140:MAX=148
630 IF F1 AND H>=68 AND H<69 AND F4 THEN W$="145-157":MIN=145:MAX=157
640 IF F1 AND H>=68 AND H<69 AND F5 THEN W$="152-172":MIN=152:MAX=172
650 IF F1 AND H>=69 AND H<70 AND F3 THEN W$="142-151":MIN=142:MAX=151
660 IF B AND C=0 AND B<>132 AND B<>222 AND B<>241 AND B<>149 AND B<>155 AND B<>1
56 AND B<>162 THEN PRINT #2:CHR$(201);:: GOSUB 960 :: GOTO 480
670 IF F1 AND H>=69 AND H<70 AND F4 THEN W$="148-160":MIN=148:MAX=160
680 IF F1 AND H>=69 AND H<70 AND F5 THEN W$="155-176":MIN=155:MAX=176
690 IF F1 AND H>=70 AND H<71 AND F3 THEN W$="144-154":MIN=144:MAX=154
700 IF F1 AND H>=70 AND H<71 AND F4 THEN W$="151-163":MIN=151:MAX=163
710 IF F1 AND H>=70 AND H<71 AND F5 THEN W$="158-180":MIN=158:MAX=180
720 IF F1 AND H>=71 AND H<72 AND F3 THEN W$="146-157":MIN=146:MAX=157
730 IF F1 AND H>=71 AND H<72 AND F4 THEN W$="154-166":MIN=154:MAX=166
740 IF F1 AND H>=71 AND H<72 AND F5 THEN W$="161-184":MIN=161:MAX=184
750 IF F1 AND H>=72 AND H<73 AND F3 THEN W$="149-160":MIN=149:MAX=160
760 IF F1 AND H>=72 AND H<73 AND F4 THEN W$="157-170":MIN=157:MAX=170
770 IF F1 AND H>=72 AND H<73 AND F5 THEN W$="164-188":MIN=164:MAX=188
780 IF F1 AND H>=73 AND H<74 AND F3 THEN W$="152-164":MIN=152:MAX=164
790 IF F1 AND H>=73 AND H<74 AND F4 THEN W$="160-174":MIN=160:MAX=174
800 IF F1 AND H>=73 AND H<74 AND F5 THEN W$="168-192":MIN=168:MAX=192
810 IF F1 AND H>=74 AND H<75 AND F3 THEN W$="155-168":MIN=155:MAX=168
820 IF F1 AND H>=74 AND H<75 AND F4 THEN W$="164-178":MIN=164:MAX=178
830 IF F1 AND H>=74 AND H<75 AND F5 THEN W$="172-197":MIN=172:MAX=197
840 IF F1 AND H>=75 AND H<76 AND F3 THEN W$="158-172":MIN=158:MAX=172
850 IF F1 AND H>=75 AND H<76 AND F4 THEN W$="167-182":MIN=167:MAX=182
860 PRINT #2:CHR$(200)&CHR$(A-Z+1)&SEG$(A$,Z,A-Z+1)&CHR$(0):: GOTO 400
870 IF F1 AND H>=75 AND H<76 AND F5 THEN W$="176-202":MIN=176:MAX=202
880 IF F1 AND H>=76 AND H<77 AND F3 THEN W$="162-176":MIN=162:MAX=176
890 IF F1 AND H>=76 AND H<77 AND F4 THEN W$="171-187":MIN=171:MAX=187
900 IF F1 AND H>=76 AND H<77 AND F5 THEN W$="181-207":MIN=181:MAX=207
910 IF P>A THEN PRINT #2:CHR$(0):: GOTO 400 ELSE X=ASC(SEG$(A$,P,1)):: IF X=32 T
HEN P=P+1 :: GOTO 910
920 IF X=44 THEN PRINT #2:CHR$(179);:: P=P+1 :: GOTO 910
930 IF X=34 THEN B$="" :: Z=P :: GOSUB 970 :: P=Z+1 :: GOTO 910
940 Z=POS(A$,",",P+1):: IF Z=0 THEN PRINT #2:CHR$(200);CHR$(A-P+1);SEG$(A$,P,A-P
+1);CHR$(0):: GOTO 400
950 IF SEG$(A$,Z-1,1)=" " THEN Z=Z-1 :: GOTO 950 ELSE PRINT #2:CHR$(200);CHR$(Z-
P);SEG$(A$,P,Z-P);:: P=Z :: GOTO 910
960 X=VAL(B$):: PRINT #2:CHR$(INT(X/256))&CHR$(X-256*INT(X/256));:: RETURN
970 IF F2 AND H>=58 AND H<59 AND F3 THEN W$="102-111":MIN=102:MAX=111
980 IF F2 AND H>=58 AND H<59 AND F4 THEN W$="109-121":MIN=109:MAX=121
990 IF F2 AND H>=58 AND H<59 AND F5 THEN W$="118-131":MIN=118:MAX=131
1000 IF F2 AND H>=59 AND H<60 AND F3 THEN W$="103-113":MIN=103:MAX=113
1010 IF F2 AND H>=59 AND H<60 AND F4 THEN W$="111-123":MIN=111:MAX=123
1020 IF F2 AND H>=59 AND H<60 AND F5 THEN W$="120-134":MIN=120:MAX=134
1030 IF F2 AND H>=60 AND H<61 AND F3 THEN W$="104-115":MIN=104:MAX=115
1040 IF F2 AND H>=60 AND H<61 AND F4 THEN W$="113-126":MIN=113:MAX=126
1050 IF F2 AND H>=60 AND H<61 AND F5 THEN W$="122-137":MIN=122:MAX=137
1060 IF F2 AND H>=61 AND H<62 AND F3 THEN W$="106-118":MIN=106:MAX=118
1070 IF F2 AND H>=61 AND H<62 AND F4 THEN W$="115-129":MIN=115:MAX=129
1080 IF F2 AND H>=61 AND H<62 AND F5 THEN W$="125-140":MIN=125:MAX=140
1090 IF F2 AND H>=62 AND H<63 AND F3 THEN W$="108-121":MIN=108:MAX=121
1100 IF F2 AND H>=62 AND H<63 AND F4 THEN W$="118-132":MIN=118:MAX=132
1110 IF F2 AND H>=62 AND H<63 AND F5 THEN W$="128-143":MIN=128:MAX=143
1120 IF F2 AND H>=63 AND H<64 AND F3 THEN W$="111-121":MIN=111:MAX=121
1130 IF F2 AND H>=63 AND H<64 AND F4 THEN W$="121-135":MIN=121:MAX=135
1140 IF F2 AND H>=63 AND H<64 AND F5 THEN W$="131-147":MIN=131:MAX=147
1150 IF F2 AND H>=64 AND H<65 AND F3 THEN W$="114-127":MIN=114:MAX=127
1160 IF F2 AND H>=64 AND H<65 AND F4 THEN W$="124-138":MIN=124:MAX=138
1170 IF F2 AND H>=64 AND H<65 AND F5 THEN W$="134-151":MIN=134:MAX=151
1180 IF F2 AND H>=65 AND H<66 AND F3 THEN W$="117-130":MIN=117:MAX=130
1190 IF F2 AND H>=65 AND H<66 AND F4 THEN W$="127-141":MIN=127:MAX=141
1200 IF F2 AND H>=65 AND H<66 AND F5 THEN W$="137-155":MIN=137:MAX=155
1210 IF F2 AND H>=66 AND H<67 AND F3 THEN W$="120-133":MIN=120:MAX=133
1220 IF F2 AND H>=66 AND H<67 AND F4 THEN W$="130-144":MIN=130:MAX=144
1230 IF F2 AND H>=66 AND H<67 AND F5 THEN W$="140-159":MIN=140:MAX=159
1240 IF F2 AND H>=67 AND H<68 AND F3 THEN W$="123-136":MIN=123:MAX=136
1250 IF F2 AND H>=67 AND H<68 AND F4 THEN W$="133-147":MIN=133:MAX=147
1260 IF F2 AND H>=67 AND H<68 AND F5 THEN W$="143-163":MIN=143:MAX=163
1270 IF F2 AND H>=68 AND H<69 AND F3 THEN W$="126-139":MIN=126:MAX=139
1280 IF F2 AND H>=68 AND H<69 AND F4 THEN W$="136-150":MIN=136:MAX=150
1290 IF F2 AND H>=68 AND H<69 AND F5 THEN W$="146-167":MIN=146:MAX=167
1300 IF F2 AND H>=69 AND H<70 AND F3 THEN W$="129-142":MIN=129:MAX=142
1310 IF F2 AND H>=69 AND H<70 AND F4 THEN W$="139-153":MIN=139:MAX=153
1320 IF F2 AND H>=69 AND H<70 AND F5 THEN W$="149-170":MIN=149 MAX=170
1330 IF F2 AND H>=70 AND H<71 AND F3 THEN W$="132-145":MIN=132:MAX=145
1340 IF F2 AND H>=70 AND H<71 AND F4 THEN W$="142-156":MIN=142:MAX=156
1350 IF F2 AND H>=70 AND H<71 AND F5 THEN W$="152-173":MIN=152:MAX=173
1360 IF F2 AND H>=71 AND H<72 AND F3 THEN W$="135-148":MIN=135:MAX=148
1370 IF F2 AND H>=71 AND H<72 AND F4 THEN W$="145-159":MIN=145:MAX=159
1380 IF F2 AND H>=71 AND H<72 AND F5 THEN W$="155-176":MIN=155:MAX=176
1390 IF F2 AND H>=72 AND H<73 AND F3 THEN W$="138-151":MIN=138:MAX=151
1400 IF F2 AND H>=72 AND H<73 AND F4 THEN W$="148-162":MIN=148:MAX=162
1410 IF F2 AND H>=72 AND H<73 AND F5 THEN W$="158-179":MIN=158:MAX=179
1420 IF F1 AND(H<62 OR H>76)THEN W$="NOT LISTED":P$=W$:GOTO 1520
1430 IF F2 AND(H<58 OR H>72)THEN W$="NOT LISTED":P$=W$:GOTO 1520
1440 IF MIN>WEIGHT THEN UNDER=WEIGHT-MIN
1450 IF MAX<WEIGHT THEN OVER=WEIGHT-MAX
1460 OVER=WEIGHT-MAX
1470 IF OVER>25 THEN GOSUB 1570
1480 IF F1 THEN P$="What Are You, a FAG ?"
1490 IF F2 THEN P$="You Lying Dog"
1500 IF UNDER<-1 THEN UNDER=ABS(UNDER):GOSUB 1600
1510 IF OVER>=1 THEN GOSUB 1670
1520 PRINT P$:PAUSE 5:DISPLAY BEEP BEEP BEEP BEEP
1530 PRINT " You should weigh: ";W$:PAUSE 10
1540 LINPUT "ANOTHER ESTIMATE? (Y/N): ";ANS$
1550 IF ANS$="Y" OR ANS$="y" THEN 200
1560 RETURN
1570 B=1:FOR V=1 TO 6:PAUSE .2
1580 DISPLAY AT(B)BEEP," FAT! ":B=B+5
1590 NEXT V:RETURN
1600 IF UNDER<=5 THEN P$=PROMPT$(1)
1610 IF UNDER>5 AND UNDER<=10 THEN P$=PROMPT$(2)
1620 IF UNDER>10 AND UNDER<=15 THEN P$=PROMPT$(3)
1630 IF UNDER>15 AND UNDER<=25 THEN P$=PROMPT$(4)
1640 IF UNDER>15 AND UNDER>25 THEN P$=PROMPT$(5)
1650 DISPLAY BEEP BEEP
1660 RETURN
1670 IF ABS(OVER)>=1 THEN P$=PROMPT$(6):DISPLAY
1680 IF OVER>5 AND OVER<=10 THEN P$=PROMPT$(7)
1690 IF OVER>10 AND OVER<=15 THEN P$=PROMPT$(8)
1700 IF OVER>15 AND OVER<=25 THEN P$=PROMPT$(9)
1710 IF OVER>25 THEN P$=PROMPT$(10)
1720 DISPLAY BEEP BEEP
1730 RETURN
1740 REM nEXT V:RETURN
1750 DATA "Take some vitamins","Hit the nearest Tom Thumb"
1760 DATA "OK; Olive Oil (Where's Popeye)"
1770 DATA "Better see a doctor - Skeleton"
1780 DATA "Don't stand SIDEWAYS Stick"
1790 DATA "Watch them Doughnuts","Better start a diet"
1800 DATA "OK Porky; you know your fat"
1810 DATA "Better see a doctor; FATSO"
1820 DATA "How did you fit thru the Door?"
1830 REM END OF WEIGHT ESTIMATOR
1840 PRINT "Enter Resistor Colors":PAUSE 1
1850 REM
1860 LINPUT "First band color? ";I$:GOSUB 2210
1870 IF F=0 THEN 1860
1880 C1$=I$
1890 LINPUT "Second band color? ";I$:GOSUB 2210
1900 IF F=0 THEN 1890
1910 C2$=I$
1920 LINPUT "Third band color? ";I$:GOSUB 2210
1930 IF F=0 THEN 1920
1940 C3$=I$:C3=VAL(C3$)
1950 LINPUT "Fourth band color? ";I$:GOSUB 2360
1960 IF F=0 THEN 1950
1970 C4$=I$
1980 REM
1990 REM PRINT C1$;C2$;C3$;C4$:PAUSE
2000 IF C3=0 THEN C3$=""
2010 IF C3=1 THEN C3$="0"
2020 IF C3=2 THEN C3$="00"
2030 IF C3=3 THEN C3=98:C3$=" K"
2040 IF C3=4 THEN C3=98:C3$="0 K"
2050 IF C3=5 THEN C3=98:C3$="00 K"
2060 IF C3=6 THEN C3=99:C3$=" M"
2070 IF C3=7 THEN C3=99:C3$="0 M"
2080 IF C3=8 THEN C3=99:C3$="00 M"
2090 IF C3=9 THEN C3=99:C3$="000 M"
2100 IF C4$="GOLD" OR C4$="gold" THEN C4$=" 5% Tolerance"
2110 IF C4$="SILVER" OR C4$="silver" THEN C4$=" 10% Tolerance"
2120 IF C4$="" OR C4$="NONE" OR C4$="none" THEN C4$=" 20% Tolerance"
2130 OHM$=" ohms"
2140 IF C3=99 THEN 2170
2150 DISPLAY AT(4)BEEP,C1$;C2$;C3$;OHM$;C4$:PAUSE 8
2160 GOTO 2180
2170 DISPLAY AT(4)BEEP,C1$;C2$;C3$;OHM$;C4$:PAUSE 8
2180 LINPUT "ANOTHER RESISTOR? (Y/N): ";ANS$
2190 IF ANS$="Y" OR ANS$="y" THEN 1840
2200 PRINT "Thank you":PAUSE 2:RETURN
2210 REM CHECK IF VALID COLOR
2220 F=0
2230 IF I$="BLACK" OR I$="black" THEN F=1:I$="0"
2240 IF I$="BROWN" OR I$="brown" THEN F=1:I$="1"
2250 IF I$="RED" OR I$="red" THEN F=1:I$="2"
2260 IF I$="ORANGE" OR I$="orange" THEN F=1:I$="3"
2270 IF I$="YELLOW" OR I$="yellow" THEN F=1:I$="4"
2280 IF I$="GREEN" OR I$="green" THEN F=1:I$="5"
2290 IF I$="BLUE" OR I$="blue" THEN F=1:I$="6"
2300 IF I$="VIOLET" OR I$="violet" THEN F=1:I$="7"
2310 IF I$="GREY" OR I$="grey" THEN F=1:I$="8"
2320 IF I$="WHITE" OR I$="white" THEN F=1:I$="9"
2330 IF F THEN RETURN
2340 DISPLAY BEEP BEEP BEEP:PRINT "INVALID COLOR":PAUSE 1
2350 RETURN :REM GOTO 11010
2360 REM CHECK IF VALID COLOR
2370 F=0
2380 IF I$="GOLD" OR I$="gold" THEN F=1
2390 IF I$="SILVER" OR I$="silver" THEN F=1
2400 IF I$="NONE" OR I$="none" THEN F=1
2410 IF I$="" THEN F=1
2420 IF F THEN RETURN
2430 DISPLAY BEEP BEEP BEEP:PRINT "INVALID COLOR":PAUSE 1
2440 GOTO 1950
2450 CALL CHAR(1,"040404041F1F0E04")
2460 CALL CHAR(2,"040E1F1F04040404")
2470 DISPLAY BEEP,"GUESS A NUMBER BETWEEN 1 AND 25":PAUSE 1.5
2480 DISPLAY BEEP,"YOU HAVE 6 CHANCES":PAUSE 1
2490 DISPLAY BEEP,"INDICATORS RECORD YOUR GUESSES":PAUSE 1
2500 COUNT=1
2510 RANDOMIZE
2520 SNUM=INTRND(25)
2530 PRINT "ENTER YOUR GUESS";
2540 ACCEPT AT(28)VALIDATE(DIGIT),GUESS
2550 IF GUESS=SNUM THEN 2630
2560 CALL INDIC(COUNT)
2570 IF COUNT=6 THEN 2710
2580 IF GUESS<SNUM THEN 2610
2590 PRINT CHR$(1);GUESS;"Try a smaller number";
2600 COUNT=COUNT+1:GOTO 2540
2610 PRINT CHR$(2);GUESS;"Try a larger number";
2620 COUNT=COUNT+1:GOTO 2540
2630 PRINT "WOW!!***";GUESS;"***is correct":PAUSE 2
2640 FOR A=1 TO 0 STEP -1:X=1
2650 FOR B=1 TO 6
2660 CALL INDIC(B,A):PAUSE .1
2670 DISPLAY AT(X)BEEP,"YEA!":X=X+5
2680 NEXT B
2690 NEXT A
2700 GOTO 2770
2710 PRINT "6 Chances!";SNUM;"was the number":PAUSE 4
2720 FOR A=1 TO 30 STEP 10
2730 DISPLAY AT(A)BEEP,"BOO!":PAUSE .2:NEXT A
2740 FOR J=1 TO COUNT
2750 CALL INDIC(J,0)
2760 NEXT J
2770 LINPUT "Play again (Y/N): ";A$
2780 IF A$="Y" OR A$="y" THEN 2500
2790 RETURN
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=PHONTRAN.TXT; SizeOnDisk=1655
Content-description: PHONTRAN.TXT
20 REM PHONE TRANSLATOR - This version for CC40 and TI-74.
30 REM To modify for TI BASIC on a 99/4, remove all ":PAUSE X" statements at the
40 REM end of PRINT lines and change lines 150 and 430 to read CALL KEY(0,L,S)
50 REM Converts a 7 digit phone number into all possible letter equivalents
60 REM such as 842-2737 into TI-CARES.
70 REM Modified in August 1992 by Charles Good for CC40 and TI74.
80 REM Orifginal 99/4A program from "Zappers, having fun programming 23 games
90 REM for TI99/4A" by Henry Mullish & Don Kruger, 1984, Simon & Schuster
100 PRINT " Ring -- Ring -- Ring":PAUSE 2
110 PRINT "Using no dashes, type the seven":PAUSE 1
120 PRINT "digits or letters of a phone #"
130 CHAR$="000111ABCDEFGHIJKLMNOPRSTUVWXY"
140 FOR I=1 TO 7
150 CALL KEY(K,S)
160 IF S<1 THEN 150
170 IF (K<48)+(K>57)*(K<65)+(K>89)THEN 150
180 IF K=ASC("Q")THEN 150
190 PRINT CHR$(K);
200 IF K<58 THEN 220
210 K=INT((POS(CHAR$,CHR$(K),1)-1)/3)+49
220 NUMB(I)=(K-48)*3
230 NEXT I
240 PRINT
250 PRINT "Press and hold any key to":PAUSE .5
260 PRINT "temporarily STOP the display.":PAUSE .5
270 FOR A=1 TO 3
280 FOR B=1 TO 3
290 FOR C=1 TO 3
300 FOR D=1 TO 3
310 FOR E=1 TO 3
320 FOR F=1 TO 3
330 FOR G=1 TO 3
340 PRINT SEG$(CHAR$,NUMB(1)+A,1);
350 PRINT SEG$(CHAR$,NUMB(2)+B,1);
360 PRINT SEG$(CHAR$,NUMB(3)+C,1);
370 PRINT SEG$(CHAR$,NUMB(4)+D,1);
380 PRINT SEG$(CHAR$,NUMB(5)+E,1);
390 PRINT SEG$(CHAR$,NUMB(6)+F,1);
400 PRINT SEG$(CHAR$,NUMB(7)+G,1),
410 N=N+1
420 PRINT N;"of 2187":PAUSE 1
430 CALL KEY(L,S)
440 IF S=-1 THEN 430
450 NEXT G
460 NEXT F
470 NEXT E
480 NEXT D
490 NEXT C
500 NEXT B
510 NEXT A
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=PLSMAX.TXT; SizeOnDisk=475
Content-description: PLSMAX.TXT
100 !V0=5:E0=2.1:T0=24
110 DISPLAY AT(1),"Pulse Width Absolute Maximum":PAUSE 1
120 DISPLAY AT(1)SIZE(13),"HEAD VOLTAGE:"
130 ACCEPT AT(15)VALIDATE(NUMERIC)REC,V
140 DISPLAY AT(1)SIZE(16),"HEAD RESISTANCE:"
150 ACCEPT AT(18)VALIDATE(NUMERIC)REC,R
160 DISPLAY AT(1)SIZE(17),"TEMPERATURE: 24 C"
170 ACCEPT AT(14)SIZE(-2)VALIDATE(DIGIT)REC,T
180 E=((5+V)/(2*V))*2.1*(1+((24-T)/100))
190 TW=(R*E)/(V^2)
199 IMAGE MAX PULSE WIDTH = #.###mS
200 DISPLAY AT(1),TW:PAUSE
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=POLARCOR.TXT; SizeOnDisk=523
Content-description: POLARCOR.TXT
80 REM POLAR COORDINATE PLOT
90 REM TIPCC NOTES V10N2P14 (1985)
100 OPEN #1,"10",OUTPUT
110 PRINT #1,CHR$(19)
120 PRINT #1,"L(0,-107):1,(215,-107)"
130 PRINT #1,"L(107,0),(107,-215)"
140 PRINT #1,"M(107,-107)"
150 PRINT #1,"O"
160 PRINT #1,"C4"
190 X1=0:Y1=0
200 FOR THETA=0 TO 360 STEP 2
210 RHO=100*SIN(4*THETA)
220 X2=INT(RHO*COS(THETA))
230 Y2=INT(RHO*SIN(THETA))
240 P$="L("&STR$(X1)&","&STR$(Y1)&"),("&STR$(X2)&","&STR$(Y2)&")"
250 PRINT #1,P$
260 X1=X2:Y1=Y2
270 NEXT THETA
280 CLOSE #1
290 END
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=ROMANNUM.TXT; SizeOnDisk=788
Content-description: ROMANNUM.TXT
90 !adapted by Charles Good, Lima Ohio User Group, July 1992
100 !from BASIC PROGRAMS FOR SMALL COMPUTERS by C. Regina Compute Books 1984
110 FOR I=1 TO 9
120 READ H$(I),T$(I),S$(I)
130 NEXT I
140 DATA C,X,I,CC,XX,II,CCC,XXX,III,CD,XL,IV,D,L,V
150 DATA DC,LX,VI,DCC,LXX,VII,DCCC,LXXX,VIII,CM,XC,IX
160 !
170 R$="":RANDOMIZE
180 N=INT(1999*RND)+1
190 NN=N
200 IF N<1000 THEN 230
210 R$="M"
220 N=N-1000
230 IF N<100 THEN 270
240 NR=INT(N/100)
250 R$=R$&H$(NR)
260 N=N-NR*100
270 IF N<10 THEN 310
280 NR=INT(N/10)
290 R$=R$&T$(NR)
300 N=N-NR*10
310 IF N=0 THEN 330
320 R$=R$&S$(N)
330 DISPLAY "Roman= ";R$;:DISPLAY AT(19),"Number=";:ACCEPT AT(27),ANS
340 IF ANS=NN THEN 370
350 PRINT "The number is";NN:PAUSE
360 GOTO 160
370 PRINT "CORRECT!!!":PAUSE:GOTO 160
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=SETRAM40.TXT; SizeOnDisk=346
Content-description: SETRAM40.TXT
90 REM Sets up 8K RAM cartridge as a mass storage cartridge for 6K CC40
100 CALL POKE(36910,142,144,77,136,175,255,102,136,31,255,104,224,11)
110 CALL POKE(36923,142,144,77,136,31,255,102,136,175,255,104)
120 CALL POKE(36934,136,24,0,106,142,248,12,136,0,102,1,140,248,54)
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=SOCCER.TXT; SizeOnDisk=459
Content-description: SOCCER.TXT
100 CALL CHAR(0,"0E0E150E04040A11"):CALL CHAR(1,"001A1A1B06020509")
110 CALL CHAR(2,"0001050305191919"):CALL CHAR(3,"000105031D191901")
120 CALL CHAR(4,"150E04040A110E0E"):CALL CHAR(5,"0010141814131313")
130 CALL CHAR(6,"000B0B1B0C081412")
140 FOR A=10 TO 21:FOR B=0 TO 6:DISPLAY AT(A),CHR$(B):PAUSE .1
150 NEXT B:NEXT A:PAUSE .5
160 FOR A=21 TO 10 STEP -1:FOR B=6 TO 0 STEP -1
170 DISPLAY AT(A),CHR$(B):PAUSE .1
180 NEXT B:NEXT A:PAUSE .5:GOTO 140
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=WORDPROC.TXT; SizeOnDisk=5121
Content-description: WORDPROC.TXT
5 DATA " TI-74/CC40 Word Processor by Charles Good & Palmer Hanson"
10 DATA "Jr., June 1992. Lines 5-75 are a sample document. With HexBUS RS232"
15 DATA "dumps ASCII text to any printer or to TI WRITER on a 99/4A. Dumps"
20 DATA "to MS-DOS with TI's TI-74 PC Interface Cable. CR"
22 DATA "CR"
25 DATA " To enter text type 100 and down arrow, position cursor over 2nd"
30 DATA "quotation mark in blank DATA line and type text. When text fills a"
35 DATA "line, end the line with a closing quote, press down arrow, and"
37 DATA "continue entering text on"
40 DATA "the next blank DATA line. Text in each DATA line should be enclosed"
43 DATA "in a set of quotes."
45 DATA "Quotation marks ""WITHIN THE TEXT"" require special treatment, as in"
50 DATA "line 45. For carriage returns"
55 DATA "type ""CR"" preceeded by a space at the end of each paragraph, as in"
57 DATA "lines 20 and 65. To leave a blank line between"
60 DATA "paragraphs type ""CR"" alone on a DATA line as in line 65. CR"
65 DATA "CR"
70 DATA " If you get a MEMORY FULL error enter ""DEL 5-75"" to free up enough"
75 DATA "memory to VIEW, PRINT, or SEND the document. CR"
100 DATA "Start of document"
105 DATA ""
110 DATA ""
115 DATA ""
120 DATA ""
125 DATA ""
130 DATA ""
135 DATA ""
140 DATA ""
145 DATA ""
150 DATA ""
155 DATA ""
160 DATA ""
165 DATA ""
170 DATA ""
175 DATA ""
180 DATA ""
185 DATA ""
190 DATA ""
195 DATA ""
200 DATA ""
205 DATA ""
210 DATA ""
215 DATA ""
220 DATA ""
225 DATA ""
230 DATA ""
235 DATA ""
240 DATA ""
245 DATA ""
250 DATA ""
255 DATA ""
260 DATA ""
265 DATA ""
270 DATA ""
275 DATA ""
280 DATA ""
285 DATA ""
290 DATA ""
295 DATA ""
300 DATA ""
305 DATA ""
310 DATA ""
315 DATA ""
320 DATA ""
325 DATA ""
330 DATA ""
335 DATA ""
340 DATA ""
345 DATA ""
350 DATA ""
355 DATA ""
360 DATA ""
365 DATA ""
370 DATA ""
375 DATA ""
380 DATA ""
385 DATA ""
390 DATA ""
395 DATA ""
400 DATA ""
405 DATA ""
410 DATA ""
415 DATA ""
420 DATA ""
425 DATA ""
430 DATA ""
435 DATA ""
440 DATA ""
445 DATA ""
450 DATA ""
455 DATA ""
460 DATA ""
465 DATA ""
470 DATA ""
475 DATA ""
480 DATA ""
485 DATA ""
490 DATA ""
495 DATA ""
500 DATA ""
505 DATA ""
510 DATA ""
515 DATA ""
520 DATA ""
525 DATA ""
530 DATA ""
535 DATA ""
540 DATA ""
545 DATA ""
550 DATA ""
555 DATA ""
560 DATA ""
565 DATA ""
570 DATA ""
575 DATA ""
580 DATA ""
585 DATA ""
590 DATA ""
595 DATA ""
600 DATA ""
605 DATA ""
610 DATA ""
615 DATA ""
620 DATA ""
625 DATA ""
630 DATA ""
635 DATA ""
640 DATA ""
645 DATA ""
650 DATA ""
655 DATA ""
660 DATA ""
665 DATA ""
670 DATA ""
675 DATA ""
680 DATA ""
685 DATA ""
690 DATA ""
695 DATA ""
700 DATA ""
705 DATA ""
710 DATA ""
715 DATA ""
720 DATA ""
725 DATA ""
730 DATA ""
735 DATA ""
740 DATA ""
745 DATA ""
750 DATA ""
755 DATA ""
760 DATA ""
765 DATA ""
770 DATA ""
775 DATA ""
780 DATA ""
785 DATA ""
790 DATA ""
795 DATA ""
800 DATA ""
805 DATA ""
810 DATA ""
815 DATA ""
820 DATA ""
825 DATA ""
830 DATA ""
835 DATA ""
840 DATA ""
845 DATA ""
850 DATA ""
855 DATA ""
860 DATA ""
865 DATA ""
870 DATA ""
875 DATA ""
880 DATA ""
885 DATA ""
890 DATA ""
895 DATA ""
900 DATA ""
905 DATA ""
910 DATA ""
915 DATA ""
920 DATA ""
925 DATA ""
930 DATA ""
935 DATA ""
940 DATA ""
945 DATA ""
950 DATA ""
955 DATA ""
960 DATA ""
965 DATA ""
970 DATA ""
975 DATA ""
980 DATA ""
985 DATA ""
990 DATA ""
995 DATA ""
1000 PRINT " DATA STATEMENT WORD PROCESSOR":PAUSE 2
1010 RESTORE 100:CODE=0
1020 INPUT "1=View 2=Print 3=Send 4=Inst. ";M$
1025 IF M$="4"THEN RESTORE
1030 IF M$="1"OR M$="4"THEN LW=31:GOTO 3030
1040 IF M$="2"THEN 3000
1050 IF M$="3"THEN 4000 ELSE 1020
3000 INPUT "Printer device number?";P$
3010 OPEN #1,P$,OUTPUT
3020 INPUT "Line Width?";LW:IF LW>80 THEN 3020
3025 INPUT "Left margin column? 0-79 ";LM
3030 PRINT$="":PW=0
3040 ON ERROR 5000
3050 READ TEXT$
3060 IF TEXT$=""THEN 3050
3070 TEXT$=TEXT$&" "
3080 X=LEN(TEXT$):Y=POS(TEXT$," ",1)
3090 IF X=0 THEN 3050
3100 ADD$=SEG$(TEXT$,1,Y)
3110 IF ADD$="CR "AND PW>0 THEN 3170
3120 IF ADD$="CR "THEN 3185
3130 IF (PW+Y)>LW THEN 3170
3140 PRINT$=PRINT$&ADD$
3150 TEXT$=SEG$(TEXT$,Y+1,X-Y)
3160 PW=PW+Y:GOTO 3080
3170 PRINT$=SEG$(PRINT$,1,PW-1)
3175 IF SEG$(PRINT$,1,1)=" "THEN PRINT$=SEG$(PRINT$,2,PW-2)
3180 IF M$="2"OR M$="3"THEN N=N+1:PRINT TAB(5);"Sending Line";N;"of text"
3185 IF M$="1"OR M$="4"THEN PRINT PRINT$:PAUSE:GOTO 3205
3190 PRINT #1,TAB(LM);PRINT$
3200 IF CODE=32 THEN PRINT #1:CLOSE #1:N=0:LM=0
3205 IF CODE=32 THEN PRINT TAB(9);"End of document":PAUSE:RETURN 1000
3210 IF ADD$="CR "THEN TEXT$=SEG$(TEXT$,4,X)
3220 PW=0:PRINT$="":GOTO 3080
4000 OPEN #1,"20.D=8,P=N,R=C",OUTPUT,VARIABLE 80!HexBus RS232 toTIWriter on99/4A
4005 !OPEN #1,"101.FILENAME.DOC",VARIABLE 80,OUTPUT!PC interface cable to MS-DOS
4010 GOTO 3020
5000 !End of DATA routine
5010 CALL ERR(CODE,A)
5020 IF CODE=43 THEN CODE=32!Interpret CC40 error code as TI74 error code
5030 IF CODE<>32 THEN RETURN ELSE 3180
--Boundary (ID PEar9C1M4y//oQ7m2f0uXw)
Content-type: TEXT/plain; CHARSET=US-ASCII; name=SORT10.TXT; SizeOnDisk=2717
Content-description: SORT10.TXT
80 REM Sorts numbers or words. Use of printer/plotter is optional
90 REM CC40 BASIC, rewritten by Charles Good from a PD 99/4A program
100 DIM G(150),C$(150)
110 Z=1
120 PRINT " ALPHA NUMERIC SORT":PAUSE 2
130 INPUT "Type C for char, N for number";W$
140 IF W$="N"THEN 660
150 IF W$="n"THEN 660
160 IF W$="c"THEN 180
170 IF W$<>"C"THEN 130
180 INPUT "Enter an END OF LIST code";S$
190 PRINT "Now begin entering data.":PAUSE 1
200 PRINT "Press <ENTER> after each entry,":PAUSE 1
210 PRINT "When finished enter stopcode.":PAUSE 1
220 N=N+1
230 INPUT C$(N)
240 IF C$(N)<>S$THEN 220
250 N=N-1
260 L=INT(N/2)+1
270 N1=N
280 IF L=1 THEN 320
290 L=L-1
300 A$=C$(L)
310 GOTO 360
320 A$=C$(N1)
330 C$(N1)=C$(1)
340 N1=N1-1
350 IF N1=1 THEN 490
360 J=L
370 I=J
380 J=2*J
390 IF J=N1 THEN 430
400 IF J>N1 THEN 460
410 IF C$(J)>=C$(J+1)THEN 430
420 J=J+1
430 IF A$>C$(J)THEN 460
440 C$(I)=C$(J)
450 GOTO 370
460 C$(I)=A$
470 GOTO 280
480 C$(1)=A$
490 C$(1)=A$
500 PRINT "Here is the sorted list.":PAUSE 1
510 INPUT "P = printer, S = screen";Y$
520 IF Y$="S"THEN 610
530 IF Y$="s"THEN 610
540 IF Y$="p"THEN 560
550 IF Y$<>"P"THEN 510
560 OPEN #1,"10",OUTPUT
570 FOR I=1 TO N
580 PRINT #1,C$(I)
590 NEXT I
600 CLOSE #1:GOTO 640
610 FOR I=1 TO N
620 PRINT C$(I),"Press ENTER":PAUSE
630 NEXT I
640 INPUT "End of list. Press ENTER.";Y$
650 RUN
660 INPUT "Enter an END OF LIST number.";S$
670 IF SEG$(S$,1,1)<"0"THEN 690
680 IF SEG$(S$,1,1)<="9"THEN 700
690 PRINT "Please type a POSITIVE NUMBER":PAUSE 1:GOTO 660
700 S=VAL(S$)
710 PRINT "Now begin entering data":PAUSE 1
720 N=N+1
730 INPUT G(N)
740 IF G(N)<>S THEN 720
750 N=N-1
760 L=INT(N/2)+1
770 N1=N
780 IF L=1 THEN 820
790 L=L-1
800 A=G(L)
810 GOTO 860
820 A=G(N1)
830 G(N1)=G(1)
840 N1=N1-1
850 IF N1=1 THEN 980
860 J=L
870 I=J
880 J=2*J
890 IF J=N1 THEN 930
900 IF J>N1 THEN 960
910 IF G(J)>=G(J+1)THEN 930
920 J=J+1
930 IF A>G(J)THEN 960
940 G(I)=G(J)
950 GOTO 870
960 G(I)=A
970 GOTO 780
980 G(1)=A
990 M=INT((N+1)/2)
1000 FOR I=1 TO N
1010 AV=AV+G(I)
1020 NEXT I
1030 AVERAGE=AV/N
1040 PRINT "Here is the sorted list.":PAUSE 1:INPUT "P = printer, S = screen";Y$
1050 IF Y$="s"THEN 1140
1060 IF Y$="S"THEN 1140
1070 IF Y$="p"THEN 1080:IF Y$<>"P"THEN 1040
1080 OPEN #1,"10",OUTPUT
1090 FOR I=1 TO N
1100 PRINT #1,G(I)
1110 NEXT I
1120 PRINT #1,"Median =";G(M):PRINT #1,"Average =";AVERAGE
1130 CLOSE #1:RUN
1140 FOR I=1 TO N
1150 PRINT G(I),"Press ENTER":PAUSE
1160 NEXT I
1170 PRINT "End of list. Press ENTER.":PAUSE
1180 PRINT "Median =";G(M);" Average =";AVERAGE:PAUSE
1190 RUN
<EOF>